HTTP(Hyper Text Transfer Protocol)超文本传输协议。是用于从WWW服务器传输超文本到本地浏览器的传输协议。它采用了请求与响应的模式。今天就来总结一下关于HTTP请求与响应的知识。
整个过程如下:
- 浏览器负责发起请求。
- 服务器在80端口接收请求。
- 服务器负责返回内容(响应)
- 浏览器负责下载响应内容。
一、 请求
1.请求示例:
在Git中输入curl指令,获取网页内容。
curl -s -v -H " xxx: Hello World " -- "https://www.baidu.com"
请求内容如下
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.61.1
Accept: */*
xxx: Hello World
- 将请求方式改为POST。示例:
curl -X POST -s -v -H "sw: Hello World" -- "https://www.baidu.com"
请求内容如下:
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.61.1
Accept: */*
sw: Hello World
3.请求方式为post并且在该请求中发送指定的数据,示例:
curl -X POST -d "123" -s -v -H "sw: Hello World" -- "https://www.baidu.com"
请求内容如下:
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.61.1
Accept: */*
sw: Hello World
Content-Length: 3
Content-Type: application/x-www-form-urlencoded
[3 bytes data] // -d: 123
- 请求的具体格式:
由以下四部分组成
第一部分: 动词 路径 协议/版本号
第二部分:
Key1: value1
Key2: value2
Key3: value3
Content-Length: 3
Content-Type: application/x-www-form-urlencoded
第三部分:回车
第四部分:需要上传的数据
常见的几个动词如下:
GET:请求指定的页面信息,并返回实体主体。
HEAD:只请求页面的首部。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE: 请求服务器删除指定的页面。
PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
OPTIONS: 允许客户端查看服务器的性能。
-
如何在Chrome中查看HTTP请求内容?
(1)打开浏览器自带的开发者工具查看(这里以百度为例子),进入Network中查看。
(2)输入完整的URL地址。
(3)在Network中查看第一个请求的request,并且点击view source就能看到以下截图。
Chrome中查看请求内容
二、响应
- 与上一章请求示例1中对应的响应如下:
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: Sun, 14 Oct 2018 11:25:30 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=/
{ [2443 bytes data]
需要说明的是最后一行显示的是要下载的内容,这里进行了省略。
- 与示例2对应的响应如下:
HTTP/1.1 302 Found
Connection: Keep-Alive
Content-Length: 17931
Content-Type: text/html
Date: Sun, 14 Oct 2018 11:30:29 GMT
Etag: "54d9748e-460b"
Server: bfe/1.0.8.18
{ [3824 bytes data]
- 响应的格式
第一部分:协议/版本号 状态码 状态解释
第二部分:
Key1: value1
Key2: value2
Content-Length: 17931
Content-Type: text/html
常见的几个状态码:
1xx:这一类型的状态码,代表请求已被接受,需要继续处理。
2xx:这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。
3xx:这类状态码代表需要客户端采取进一步的操作才能完成请求。
4xx:客户端错误,这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。
-
用Chrome查看响应
(1)打开开发者工具中的Network
(2)输入网址并选中第一个响应
(3)查看Response Headers,点击view source就会看到响应的前两部分。
(4)查看Response或Preview看到第四部分。
Chrome中查看响应的内容
网友评论