通过图轻松了解HTTP方法

目录:

  • 告知服务器意图的HTTP方法
    • GET获取资源
    • POST传输实体主体
    • PUT传输文件
    • DELETE删除文件
    • HEAD获得报文首部
    • OPTIONS询问支持的方法
    • TRACE追踪路径
    • CONNECT要求用隧道协议连接代理
  • 持久连接
  • 管线化

告知服务器意图的HTTP方法

GET获取资源

用来请求访问已被URI识别的资源,指定的资源经服务器端解析返回响应内容。

在这里插入图片描述

例子如下:

请求:

GET /index.html HTTP/1.1
Host:www.furfur.net

响应:返回index.html的页面资源

Host:虚拟主机运行在同一个IP上,因此使用首部字段Host加以区分。Host会告知服务器,请求的资源所处的互联网主机名和端口号。Host首部字段在HTTP/1.1规范内是唯一一个必须被包含在请求内的首部字段。

POST传输实体主体

POST的主要目的告知服务器信息,同时可以获取响应的主体内容。

在这里插入图片描述

例子如下:

请求:

POST/submit.cig HTTP/1.1
Host:www.furfur.net

响应:返回submit.cig接收数据的处理结果

PUT传输文件

注意:PUT方法自身不带验证机制,存在安全问题

在这里插入图片描述

例子如下:

请求:

PUT/fur.html HTTP/1.1
Host:www.furfur.net

响应:响应返回状态码204 No Content

204状态码表示服务器 接收的请求已经成功处理,但在返回的响应报文中不含实体的主体内容部分,也不允许返回任何实体。

DELETE删除文件

用来删除文件,与PUT方法相反,但是HTTP/1.1的DELETE方法本身和PUT方法一样不带验证机制。

在这里插入图片描述

例子如下:

请求:

DELETE/fur.html HTTP/1.1
Host:www.furfur.net

响应:响应返回状态码204 No Content

HEAD获得报文首部

与GET一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间等。

在这里插入图片描述

例子如下:

请求:

HEAD/fur.html HTTP/1.1
Host:www.furfur.net

响应:返回fur.html有关的响应首部。

OPTIONS询问支持的方法

OPTIONS询问针对请求URI指定的资源支持的方法

在这里插入图片描述

例子如下:

请求:

OPTIONS * HTTP/1.1
Host:www.furfur.net

响应:

HTTP/1.1 200 OK
Allow: GET,POST,HEAD,OPTIONS

TRACE追踪路径

TRACE方法让Web服务器端将之前的请求通信返回给客户端的方法。

发送请求时,在Max-Forwards首部字段中填入数字,每经过一个服务器端就将该数字减一,数值为0时停止继续传输,最后接收到的请求的服务器端返回码200 OK的响应。

但是TRACE方法容易引发XST(跨站追踪)攻击,通常不会用到。

在这里插入图片描述

例子如下:

请求:

TRACE /HTTP/1.1
Host:www.furfur.net
Max-Forwards:2

响应:

HTTP/1.1 200 OK
Content-Type:message/http
Content-Length:1024

TRACE/HTTP1.1
Host:www.furfur.net
Max-Forwards:2

CONNECT要求用隧道协议连接代理

实现用隧道协议进行TCP通信,主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输。

CONNECT 代理服务器名:端口号 HTTP版本

在这里插入图片描述

例子如下:

请求:

CONNECT fur.net:8080 HTTP/1.1
Host:www.furfur.net

响应:

HTTP/1.1 200 OK 

持久连接

由于多次请求会造成无谓的TCP连接的建立和断开,增加通信量的开销,HTTP推出持久连接

持久连接(HTTP Persistent Connections 也称 HTTP keep-alive或HTTP connection reuse):只要任意一端没有明确提出断开连接,则TCP保持连接状态。

在这里插入图片描述

管线化

持久连接使得管线化成为可能,即不用等待响应亦可以直接发送下一个请求,这样可以做到同时并行发送多个请求,而不用一个一个等待响应。

在这里插入图片描述
本文参考自《图解HTTP》
查看上一篇通过图轻松了解各种协议

posted on 2020-01-26 21:47  furfur-jiang  阅读(221)  评论(0编辑  收藏  举报