超文本传输协议(英文:HyperText Transfer Protocol,即HTTP):是客户端与服务器端的请求和应答的标准。
一:HTTP 请求
主要包括四部分(也可以为三部分),大致格式如下:
第一部分:
动词 路径 协议/版本(GET / HTTP/1.1)
动词GET(获取) POST(新增) PUT(整体更新) PATCH(部分更新) DELETE(删除)等;
路径包括“查询参数”,不包括“锚点”,默认路径为“/”;
第二部分:
Key1: value1
Key2: value2
Content-Type: application/x-www-form-urlencoded
Host: www.baidu.com
User-Agent: curl/7.54.0
其中Content-Type标注了请求部分中第四部分格式
第三部分:
第三部分永远是一个回车(\n);表示请求头已经结束,接下来是要上传的数据
第四部分:
要上传的数据,可有可无;其中第二部分中的Content-Type已经表明该部分格式。
使用Chrome开发者工具查看 HTTP 请求内容:
1,F12打开开发者工具,点击Network:
2,输入标准网址(此处以百度为例),在开发者工具左侧向上翻找到对应网址点击,在Headers中查看第三项,点击view source,如下图:
3,此时无法看到第三,四部分,因为没有上传数据。在搜索时,可以在 FormData 或 Payload 中查看。
二:HTTP响应
第一部分:
协议/版本号 状态码 状态解释(HTTP/1.1 200 OK)
状态码有三位数组成常见的如:404;502等。
1xx 表示请求已被接受,需要继续处理。
2xx 表示请求已成功被服务器接收、理解、并接受。
3xx 表示需要客户端采取进一步的操作才能完成请求。
4xx 表示客户端看起来可能发生了错误,妨碍了服务器的处理。
5xx 表示服务器无法完成明显有效的请求。
第二部分:
Key1: value1
Key2: value2
Content-Length: 17931
Content-Type: text/html
其中Content-Type标注了响应部分中第四部分格式,遵循 MIME 规范。
第三部分:
第三部分永远是一个回车(\n);表示请求头已经结束,接下来是要上传的数据。
第四部分:
要下载的数据;其中第二部分中的Content-Type已经表明该部分格式。
使用Chrome开发者工具查看 HTTP 响应内容:
1,F12打开开发者工具,点击Network。
2,输入网址,点击开发者工具左侧第一个响应。
3,查看Response Headers部分(切记:点击view source)。
4,此时如同查看请求部分一样可以看到前两部分,如果要查看三,四部分点击 Response 或者 Preview即可。
三:使用 curl 命令
curl命令是一个利用URL语法在命令行下工作的文件传输工具。
例子:curl -X POST -d "xxx" -s -v -H "xxx: xxx" -- "https://www.xxx.com"
-X/--request 为 HTTP 数据包指定一个方法,比如 PUT、DELETE。默认的方法是 GET。
-d/--data 为 POST 数据包指定要向 HTTP 服务器发送的数据并发送出去。
-s/--silent 将 curl 设定在静默模式下工作。
-v/--verbose 显示数据传输过程中的详细信息。
-H/--header 为 HTTP 数据包指定 Header 字段内容。