HTTP的响应和请求

1.服务器与浏览器的交互

本地的浏览器向服务器发起请求,服务器一般在80端口接受请求,服务器之后返回内容(响应),浏览器下载响应内容。

超文本传输协议(HTTPHyperText Transfer Protocol)在上述过程中指导浏览器和服务器如何进行沟通。

 

2.HTTP的状态码

1XX系列:这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,除非试验条件下,否则不常用。

 

2XX系列:代表请求已成功被服务器接收、理解、并接受。成功

200:表示请求已成功,请求所希望的响应头或数据体将随此响应返回

201:表示请求成功并且服务器创建了新的资源,且其 URI 已经随Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 '202 Accepted'

202:服务器已接受请求,但尚未处理

 

3XX系列:代表需要客户端采取进一步的操作才能完成请求。通常用来重定向

301 :请求的网页已永久移动到新位置。服务器返回此响应(对 GET HEAD

请求的响应)时,会自动将请求者转到新位置。

302 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置

来进行以后的请求。

304 :自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回

           网页内容。

 

4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。

400 服务器不理解请求的语法。

401 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

403 服务器拒绝请求。

404 服务器找不到请求的网页。

 

5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器

意识到以当前的软硬件资源无法完成对请求的处理。

500 服务器遇到错误,无法完成请求。

503 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。

504:  网关超时,由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。

 

3.HTTP动词

常用的HTTP动词有下面五个(括号里是对应的SQL命令):

GETSELECT):从服务器取出资源(一项或多项)。

POSTCREATE):在服务器新建一个资源。

PUTUPDATE):在服务器更新资源(客户端提供改变后的完整资源)

PATCHUPDATE):在服务器更新资源(客户端提供改变的属性)。

DELETEDELETE):从服务器删除资源。

其他动词:

HEAD:获取资源的元数据。

OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。

 

4.用 Chrome 发请求

  1. 打开 Network
  2. 地址栏输入网址
  3. Network 点击,查看 request,点击「view source
  4. 之后可以看到请求的前三部分了
  5. 如果有请求的第四部分,那么在 FormData Payload 里面可以看到

 

请求格式:

1 动词 路径 协议/版本

2 Key1: value1   eg1: Content-Type: application/x-www-form-urlencoded

2 Key2: value2   eg2:Host: www.baidu.com

2 Key3: value3   eg3:User-Agent: curl/7.54.0

3

4 要上传的数据

注意:

  1. 请求最多包含四部分,最少包含三部分(也就是说第四部分可以为空)。第三部分永远都是一个回车(\n
  2. 动词有 GET POST PUT PATCH DELETE HEAD OPTIONS
  3. 这里的路径包括「查询参数」,但不包括「锚点」
  4. 如果你没有写路径,那么路径默认为 /
  5. 2 部分中的 Content-Type 标注了第 4 部分的格式

 

5.用 Chrome 发响应

  1. 打开 Network
  2. 输入网址
  3. 选中第一个响应
  4. 查看 Response Headers,点击「view source」,会看到响应的前两部分
  5. 查看 Response 或者 Preview,会看到响应的第 4 部分

 

响应格式:

1 协议/版本号 状态码 状态解释

2 Key1: value1

2 Key2: value2

2 Content-Length: 17931

2 Content-Type: text/html (标注了第四部分的格式)

3

4 要下载的内容

 

6. 命令行请求实例

curl命令:是一个利用URL规则在命令行下工作的文件传输工具。

Get请求:curl -s -v -H "Frank: xxx" -- "https://www.baidu.com/path"     -s表示静默模式,即不输出任何东西;-v表示啰嗦模式,即获取                    curl发出和接受的数据;-H  指(HTTP)extra header。

返回的格式:

1 GET /path HTTP/1.1
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
2 Accept: */*
2 Frank: xxx
3

Post请求:curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"   -d 表示 数据;-X 表示请求。

返回的格式:

1 POST / HTTP/1.1
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
2 Accept: */*
2 Frank: xxx
2 Content-Length: 10
2 Content-Type: application/x-www-form-urlencoded
3
4 1234567890

猜你喜欢

转载自blog.csdn.net/zhouyl02/article/details/82154055