一、http 请求
http请求其实就是客户端发送至服务器的请求信息
(1)动词 路径 协议/版本
例如:GET /sample.jsp HTTP/1.1
常用动词: GET(信息获取) POST(提交数据) PUT(更新数据) PATCH(部分更新) DELETE(删除)
(2)请求头(Request Header)
标准格式:Key1: value1
请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。常见例如:
Content-Length: 10
Content-Type: application/x-www-form-urlencoded(标注了第 4 部分的格式)
Host: www.baidu.com
User-Agent: curl/7.54.0
(3)一个回车(\n)
请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。
(4)请求正文(可以为空)
请求正文中可以包含客户提交的查询字符串信息,如:username=jinqiao&password=1234
如何用Chrome开发者工具查看 HTTP 请求内容
1、在Chrome中按F12打开开发者工具(mac为option+command+i),然后选择Network
2、地址栏输入网址、在 Network 点击,查看 request,点击「view source」
3、然后就能看到请求的前三部分了
4、如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到
二、http 响应
(1)协议/版本号 状态码 状态解释
如:HTTP/1.1 200 OK
状态码由3位数字组成,表示请求是否被理解或被满足。常见状态码:
- 1xx: 信息—表示请求已接收,继续处理。
- 2xx: 成功—表示请求已经被成功接收、理解、接受。
- 3xx: 重定向—要完成请求必须进行更进一步的操作。
- 4xx: 客户端错误—请求有语法错误或请求无法实现。
- 5xx: 服务器端错误—服务器未能实现合法的请求。
(2)响应头(Response Header)
标准格式:Key1: value1,如:
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
(3)一个回车(\n)
和请求类似,响应头和响应正文之间是一个空行。
(4)响应正文(可以很长很长很长)
响应正文对应浏览器要下载的内容
如何用Chrome开发者工具查看 HTTP 响应内容
1、打开 Network
2、输入网址,选中第一个响应,点击 view source
3、看到响应的前两部分
4、点击 Response 或者 Preview,查看响应的第 4 部分
三、基本 curl 命令
例子:curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"
-X/--request <command> : 指定什么命令
-d/--data <data>: HTTP POST方式传送数据
-s/--silent: 静默模式。不输出任何东西
-v/--verbose: 用于打印更多信息,包括发送的请求信息,调试脚本时特别有用
-H/--header <line>: 自定义头信息传递给服务器