HTTP请求包含4个部分
1.请求行
GET /3d-login/ HTTP/2
包含请求方法,路径,HTTP版本
2.首部字段
Host: jingpingyi.github.io
User-Agent: curl/7.55.0
Accept: */
包含访问的主机域名,本地代理和其他表示请求的各种条件和属性
以key: value形式表示。
3.空行(CR+LF)
用于隔开前后两部分
4.报文主体
根据使用的请求方法不同,报文主体可能为空。
如果使用的POST方法,上传的数据会在这部分。如果是GET方法,这部分为空。
使用chrome浏览器可以查看请求的报文,按F12查看代码,然后刷新页面
HTTP响应报文包含4个部分
1.响应行
HTTP/2 200 OK
包含HTTP版本,状态码,原因短语
2.首部字段
content-type: text/html; charset=utf-8
server: GitHub.com
strict-transport-security: max-age=31556952
last-modified: Mon, 15 Oct 2018 08:41:35 GMT
etag: "5bc452bf-848"
access-control-allow-origin: *
expires: Mon, 06 Jan 2020 01:25:36 GMT
cache-control: max-age=600
x-proxy-cache: MISS
x-github-request-id: 7208:0787:2CA263:326858:5E128A38
accept-ranges: bytes
date: Mon, 06 Jan 2020 01:15:36 GMT
via: 1.1 varnish
age: 0
同样使用key: value的形式。包含响应的日期,文件的格式等各种条件和属性
3.空行(CR+LF)
用于隔开前后两部分
4.报文主体
服务器响应的文件内容,可能是html文档,图片或其他格式的文件
使用chrome浏览器,按F12查看代码,然后刷新页面,可以看到响应报文和文件
除了使用Chrome查看HTTP报文,还可以使用命令行
curl是一款很强大的http命令行工具。它支持文件的上传和下载。
使用方法:curl [option] [url]
使用 -v 详细的显示HTTP请求和响应的内容
curl -s -v https://www.baidu.com
使用 -d 发送 POST 请求
curl -d "userName=tom&passwd=123456" -X POST http://www.example.com/login