HTTP请求的格式是什么?

  • Post category:Python

HTTP请求的格式如下:

HTTP-Method Request-URL HTTP-Version
Header-1: Value-1
Header-2: Value-2
...
Header-n:Value-n

Request-Body

对于HTTP请求,首先需要指定HTTP方法,一般有以下几种:GET、POST、PUT、DELETE等。接下来是一个空格,然后是请求的URL地址,再接下来的是HTTP协议的版本号,目前常用的是HTTP/1.1版本。三者之间都以空格相隔。

接下来就是HTTP请求头(Header) 。请求头中包含了一些请求的相关信息,比如浏览器的版本号等,也经常包含安全认证(Authentication)和Cookie等信息。请求头一般是以key-value形式存在,以冒号分隔。每一个key-value值都以换行符分隔。请求头的最后一个值以一个空行作为间隔,它后面的内容都属于请求体。

最后,如果是POST请求,请求体中会包含表单数据等信息。

下面是两个HTTP请求的示例:

  1. GET请求示例
GET http://www.example.com/index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3

这个请求是一个普通的GET请求,请求的URL是http://www.example.com/index.html,HTTP协议的版本是HTTP/1.1。请求头包含了Host和User-Agent两个字段,其中Host指定了请求的服务器地址,User-Agent指定了浏览器的版本和类型。这个请求不包含请求体。

  1. POST请求示例
POST http://www.example.com/login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 28

username=admin&password=123456

这个请求是一个POST请求,请求的URL是http://www.example.com/login,HTTP协议的版本是HTTP/1.1。请求头中包含了Host、Content-Type和Content-Length字段。其中Content-Type指定了请求体的类型,这里是表单数据。Content-Length指定了请求体的长度。请求体中包含了表单数据,其中包括了用户名和密码。