关于HTTP的请求/响应,以及curl 命令的使用
(1)HTTP 请求/和响应包括哪些部分
想要知道http请求以及响应包括哪些内容,先要打开git Bash运行一行命令
运行结果如图(部分)curl -s -v -H "kkkk: xxx" -- "https://www.baidu.com"
//这个命令具体是什么意思,后面来谈,目前你只需知道 通过 curl 向百度服务器发起一个请求
蓝色部分是http请求部分,黄色部分是http响应部分
首先来看http请求部分,一共是6行
> GET / HTTP/1.1
// GET是请求方式,请求方式有多种 (GET/POST/ HEAD /DELETE/PUT/ PUT / TRACE / OPTIONS )
GET:从服务器获取一份文档
HEAD:只从服务器获取文档的首部
POST:向服务器发送需要处理的数据
PUT:将请求的主体部分存储在服务器上
TRACE:对可能经过代理服务器传送到服务器上去的报文进行跟踪
OPTIONS:决定可以在服务器上执行哪些方法
DELETE:从服务器上删除一份文档
/ 斜杠表示跟目录,因为没有写请求URL
HTTP/1.1 表示http协议和版本号
> Host: www.baidu.com
//这个我也不懂,就当它是废话吧,
> User-Agent: curl/7.55.0
// 这句话表示你是使用什么样的软件发起的响应
> Accept: */*
// 这个表示我接受你返回给我的任何内容,你可以指定它 ,例如 text/html
> kkkk: xxx
这句话没有意义,是自己上面加上去的,当然你也可以选择不加
>
空的回车符,不知道干啥的
总的来说,请求部分的格式一共可以分成4个部分,最少可以分成3个部分,第4部分可以为空
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
//第三部分 分永远都是一个回车(\n)
4 要上传的数据
//第四部分
再看http响应部分,内容很多,写几个认识的,没写的就略过吧。
< HTTP/1.1 200 OK
// http协议,版本号,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: Thu, 04 Oct 2018 14:04:29 GMT // 响应的时间
< Etag: "58860429-98b" // 不懂
< Last-Modified: Mon, 23 Jan 2017 13:24:57 GMT // 不懂
< Pragma: no-cache < Server: bfe/1.0.8.18 // 不懂
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/ // 不懂
<
响应的部分也分成4个部分
1 协议/版本号 状态码 状态解释 // 状态码很重要哦
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931 2 Content-Type: text/html
3
4 要下载的内容
(2) 如何用Chrome开发者工具查看 HTTP 请求内容和响应内容
首先你需要下载Chrome浏览器,打开浏览器空白页面,鼠标右键 检查 点一下.得到下图状态,点击三个小点点会弹出红框的内容,这个可以设置你检查界面的布局。
1.在地址栏输入一个网址
2.点开第一个响应
得到下图
我输入的天猫首页红框里面可以看到,有两部分被折叠起来得东西,第一个是响应部分,第二个是请求部分,至于里面的内容是什么意思,我很多都不知道。。。。请原谅一个新手,好吗?
(3) 如何使用 curl 命令
自己看文档吧,比我讲的清楚多了