HTTP是什么
HTTP(HyperText Transfer Protocol),超文本传输协议,指导浏览器和服务器如何进行沟通。
HTTP请求
- 请求的格式
1 动词 路径 协议/版本
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3
4 要上传的数据
- 请求最多包含四部分,最少包含三部分。(第四部分可以为空)
- 第三部分永远都是一个回车
- 动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
- 这里的路径包括「查询参数」,但不包括「锚点」
- 如果没写路径,那么路径默认为 /
- 第 2 部分中的 Content-Type 标注了第 4 部分的格式
实例:
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Yuki: xxx
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded
1234567890
- 如何查看请求
1.打开 Network
2.地址栏输入网址
3.在 Network 点击,查看 request,点击「view source」
4.点击「view source」
5.如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到
HTTP响应
- 响应的格式
1 协议/版本号 状态码 状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下载的内容
第 2 部分中的 Content-Type 标注了第 4 部分的格式
第 2 部分中的 Content-Type 遵循 MIME 规范
实例:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<!DOCTYPE html>
<!--STATUS OK--><html> <head> 后面太长,省略了……
- 如何查看响应
打开 Network
输入网址
选中第一个响应
查看 Response Headers,点击「view source」
你会看到响应的前两部分
查看 Response 或者 Preview,你会看到响应的第 4 部分
curl 命令
curl命令详解
curl -X POST -d "userName=tom&passwd=123456" -s -v -H "Yuki: xxx" -- "https://www.baidu.com"
-X 使用指定的请求方式。(默认请求方式为get)
-d 上传数据
注意:
在使用 -d 的情况下,如果省略 -X,则默认为 POST 方式:
curl -d “userName=tom&passwd=123456”
强制使用 GET 方式 :
发送数据时,不仅可以使用 POST 方式,也可以使用 GET 方式,
例如:curl -d “somedata” -X GET
-s,-silence
静音模式。不显示进度表或错误消息。
-v 可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息。
使用 -H 自定义 header
当我们需要传递特定的 header 时,可以仿照以下命令来写:
curl -H “Referer: www.example.com” -H “User-Agent: Custom-User-Agent” -- "http://www.baidu.com"
可以看到,当我们使用 -H 来自定义 User-Agent 时,需要使用 “User-Agent: xxx” 的格式。
本文著作权归本人和饥人谷所有,转载务必注明来源。