HTTP的请求与响应相关
概括:HTTP通俗的来说就是一个协议,主要负责浏览器与服务器的交互
HTTP 请求包括哪些部分
HTTP 请求包括哪些部分:
第一部分:
> 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
对应图片:
">" 后面的的是HTTP请求部分,"<" 后面是HTTP响应部分

-
第一部分:动词 路径 协议/版本
-
动词包括:GET POST PUT PATCH DELETE HEAD OPTIONS 等
-
路径包括「查询参数」,但不包括「锚点」。即使没有写路径,HTTP也会添加一个"/"为默认路径
-
-
第二部分:Key:value 格式的数据
- 其中 Content-Type 属性标注了第四部分上传的数据的格式。
-
第三部分:只有一个回车,用来区分第二部分和第四部分
-
第四部分:要上传的数据
在HTTP请求中可以没有上传数据,所以可以根据有无数据分为三部分或四部分。
HTTP 响应包括哪些部分
HTTP响应与HTTP请求对应,也包括四部分:
第一部分:
< 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>...等标签
对应图片:

-
第一部分:协议/版本号 状态码 状态解释
-
第二部分:Key:value 格式的数据
-
Content-Length 属性:表示页面长度
-
Content-Type 属性:标注了第四部分上传的数据的格式。
-
-
第三部分:依然是只有一个回车,用来区分第二部分和第四部分
-
第四部分:要下载的数据内容
如何用Chrome开发者工具查看 HTTP 请求、响应内容
1. 打开浏览器,按F12或者右击网页进入检查。

2. 点击 Network

3. 在浏览器地址栏输入要查看的网址,然后回车

4. 然后在下面会出现一个Name栏,点击Name栏列表中的第一个地址

5. 这时Name栏左侧会出现一个新栏,下面的第二个就是HTTP 响应内容

6. 在Name栏左侧的新栏下面的第三个就是HTTP 请求内容


如何使用 curl 命令
用curl创建一个请求并获取响应:
$ curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"
-H "Frank: xxx"
添加一个请求头
-- "https://www.baidu.com"
要请求的网址
-s
不要显示进度条
-v
显示请求和响应
-H "Frank: xxx"
没有实际意义,只是上传的一句话
请求的内容:
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.64.0
> Accept: */*
> Frank: xxx
>
-X
请求内容为POST格式:
$ curl -X -s -v -H "Frank: xxx" -- “https://www.baidu.com”
请求的内容:
> POST / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.64.0
> Accept: */*
> Frank: xxx
>
-d "1234567890"
添加一个数据:
$ curl -X -d "1234567890" -s -v -H "Frank: xxx" -- “https://www.baidu.com”
请求的内容:
> POST / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.64.0
> Accept: */*
> Frank: xxx
> Content-Length: 10
> Content-Type: application/x-www-form-urlencoded
>
} [10 bytes data]
* upload completely sent off: 10 out of 10 bytes -- 这里表示上传了十个字符串
-
Content-Length:上传内容的长度
-
Content-Type:上传内容的格式
先写这些,后期再完善吧~
网友评论