HTTP由两部分组成

  1. 请求
  2. 响应

HTTP请求

GET请求示例

GET /demo/test HTTP/1.1
Host: www.test.com
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
Referer: http://www.test.com/demo/test
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4
Cookie: Hm_lvt_e4bb55296c4a6ce65969205c0d3afc45=1504247137,1505700037,1506585691;

{"status":1}

格式说明

  1. 请求行(request line)
  2. 请求头(request headers
  3. 空格
  4. 请求体(request body)

1.请求行(request line)

由请求方法,URL,HTTP协议版本三部分组成,空隔分隔,“\r\n”结尾。

2.请求头(request headers)

包含若干个属性与属性值,冒号分隔,格式为“属性名:属性值”,每个属性:属性值都以“\r\n”结尾。

3.空格

4.请求体(request body)

一般在 POST 方法里使用,而不在 GET 方法中使用,例如浏览器将表单中的组件格式化成 param1=value1&param2=value2键值对组,然后将其存放至请求体中,以此完成对表单参数的传输。

HTTP响应

GET响应示例:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Last-Modified: Wed, 06 Sep 2017 06:56:28 GMT
Accept-Ranges: bytes
Content-Type: application/json;charset=UTF-8
Content-Length: 17140
Date: Tue, 17 Oct 2017 02:56:23 GMT
Proxy-Connection: Keep-alive

{"message":"success"}

格式说明

  1. 响应行(response line)
  2. 响应头(response headers)
  3. 空格
  4. 响应体(response body)

1.请求行(request line)

由响应行包含协议版本,状态码及描述,空隔分隔,“\r\n”结尾。

HTTP应答码及其意义

  • 1XX 保留
  • 2XX 表示成功
  • 3XX 表示URL重定向
  • 4XX 表示客户错误
  • 5XX 表示服务器错误

2.请求头(request headers)

包含若干个属性与属性值,冒号分隔,格式为“属性名:属性值”,每个属性:属性值都以“\r\n”结尾。

3.空格

4.请求体(request body)

一般存放我们真正需要的文本。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐