1. HTTP请求
请求的结构包含下面四部分:
- 动词 路径 协议/版本 //注:这里常用动词有GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS 等
- Key: value //注:这部分可以包含多个Key和对应的value
- 回车 //注这部分只能是回车
- 要上传的数据
示例:
用git bash发出一个请求curl -s -v -H "lan: first request" -- "https://www.baidu.com/s?wd=hello#5"
:
请求如下:
说明:
1)请求最多包含四部分,最少包含三部分,第四部分上传的数据可以没有;
2)第三部分只能是一个回车(\n);
3)这里的路径包括「查询参数」,但不包括「锚点」;
4)如果你没有写路径,那么路径默认为 /;
2. HTTP响应
请求的结构最多包含下面四部分:
- 协议/版本号 状态码 状态解释 //注:这里常用状态码有2××(成功)、3××(重定向)、4××(客户端错误)、5××(服务器错误)等
- Key: value //注:这部分可以包含多个Key和对应的value
- 回车 //注这部分只能是回车
- 要下载的数据
示例:
用git bash发出一个请求curl -s -v -H "lan: first request" -- "https://www.baidu.com/s?wd=hello#5"
:
响应如下:
说明:第三部分永远都是一个回车(\n);
3. 用Chrome开发者工具查看 HTTP 请求与响应内容
1 打开Chrome浏览器,右键,点击检查,进入开发者工具,并点击Network;
2 输入访问的网址,如
https://www.baidu.com/s?wd=hello
,刷新页面,可以看到浏览器发出很多请求;3 点击一个请求Name进入,并点击Request Headers目录的view source,就可以看到具体的请求内容,如果有请求的第四部分,那么在 FormData 可以看到;
4 同理,点击一个Response Headers目录的view source,就可以看到服务器对该请求的响应内容,点击Response栏可以查看响应的第4部分;
4. http命令curl
1 curl命令含义:从服务器传输数据或向服务器传输数据,支持大多数协议,包括HTTP,FTP和POP3等。
2 curl主要用法:
- -s/--silent:静音模式
- -S/--show-error:显示错误
- -x/--proxy <host[:port]> :在给定的端口上使用HTTP代理
- -X/--request <command>:指定什么命令
- -v:显示请求详细信息
- -V/--version:显示版本信息
- -H/--header <line>:自定义头信息传递给服务器
- -d/--data <data>:HTTP POST方式传送数据
更多用法详见Linux curl命令详解