平时我们都在用浏览器访问网页,不管是pc端还是移动端,其实都是我们的浏览器(客户端)在与服务器进行交流,而HTTP 的作用就是指导浏览器和服务器如何进行沟通。那么http请求的内容包括哪些?响应的内容又包括哪些?怎么用git去查看浏览器的请求与响应?
http请求
今天要说的http请求包含三种方式,分别是get请求、post请求与post带数据请求三种。
1.get请求(以访问百度为例):

上图我用了curl命令行创造了一个请求,并且服务器给了我一个响应,那么现在我就对上图中的请求与响应作出相应的解释。
首先跟大于号一排对应的是请求,相反,跟小于号一排对应的是响应。
我们发出的请求是:
1>GET / HTTP/1.1
GET / HTTP/1.1:我们拆解一下GET / HTTP/1.1,GET:代表请求方式,/:代表路径,因为http://baidu.com后面没有带路径,所以系统帮我们自动加上了,HTTP:代表用的是HTTP协议,1.1代表的是版本号。总体意思就是“我要访问的是根目录,我使用的协议是HTTP,版本号是1.1”。
2> Host: 百度一下,你就知道(www.baidu.com)
告诉百度服务器我们要访问的域名是(http://www.baidu.com)。
3> User-Agent: curl/7.55.0
当前发起curl请求软件的版本号是7.55.0。
4> Accept: */*
告诉百度服务器我接受服务器给我的所有内容。
我们收到的响应是:
< HTTP/1.1 200 OK
使用的协议是HTTP,当前版本是1.1,200代表的是浏览器反馈给你的状态码,由于浏览器状态码太多,你可以看百度(维基),ok就是ok的意思。
< Content-Length: 2381
返回的字符长度是2381个字节。
< Content-Type: text/html
返回的格式是html。
< Date: Thu, 11 Jul 2019 14:26:27 GMT
返回的日期。
2.POST带数据请求:
我们跟上次请求一样,只不过这次换成了post请求。
运行 curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "百度一下,你就知道(www.baidu.com)"之后,服务器给了我们以下响应。


我们发出的请求是:
>POST / HTTP/1.1
跟get请求类似只不过请求方式变成了post。
> Host: 百度一下,你就知道(www.baidu.com)
同上。
> User-Agent: curl/7.55.0
同上。
> Accept: */*
同上。
> Frank: xxx
这个可以写也可以不写,没有实际意义。
> Content-Length: 10
因为我们带了 1-0 10个字符串向服务器发起了请求。
> Content-Type: application/x-www-form-urlencoded
请求数据的格式。
我们收到的响应是:
< HTTP/1.1 302 Found
同上。
< Content-Length: 17931
返回的字符长度是17931个字节。
< Content-Type: text/html
返回的格式是html。
< Date: Thu, 11 Jul 2019 15:17:49 GMT
响应返回的日期。
3.POST不带数据请求:


post不带数据请求跟get请求相类似,只是请求方式不一样,但是GET跟POST存在这本质区别,GET是从指定的资源请求数据,而POST向指定的资源提交要被处理的数据.但是这两种在向server请求或者响应时是没什么区别的。
1.用Chrome开发者工具查看 HTTP 请求内容(还是以访问百度为例)





在chrome调试工具里我标注了请求有四部分
- 第一部分: 动词路径协议/版本
- 第二部分: Content-Type: application/x-www-form-urlencoded
第二部分: Host: http://www.baidu.com - 第三部分永远都是一个回车(
n
) - 要上传的数据
注意点
- 第三部分永远都是一个回车(
n
) - 动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
- 这里的路径包括「查询参数」,但不包括「锚点」
- 如果你没有写路径,那么路径默认为 /
- 第 2 部分中的 Content-Type 标注了第 4 部分的格式
- 用get也能带数据上传服务器,只是服务器会不接收!
- 第四部分有数据就是数据,没数据就是空。
响应有四部分
1 协议/版本号状态码状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: xxx长度
2 Content-Type: text/html
3
4 要下载的内容第 2 部分中的 Content-Type 标注了第 4 部分的格式第 2 部分中的 Content-Type 遵循 MIME 规范
注意点
- 第 2 部分中的 Content-Type 标注了第 4 部分的格式
- 第 2 部分中的 Content-Type 遵循 MIME 规范
git crul命令:
首先我们看一下完整的crul命令解释





