zoukankan      html  css  js  c++  java
  • 通过图轻松了解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》
    查看上一篇通过图轻松了解各种协议

  • 相关阅读:
    webpack to package typescript & scss
    start use webpack
    use selenium+chromedriver to taobao automatically
    Use Hexo to Build My Gitee Blog
    Promise调用方式
    导航守卫用法
    VueCli路由配置
    webpack安装vue-loader
    webpack用npm进行局部安装
    JavaScript里的语句用分号结尾是个选项吗
  • 原文地址:https://www.cnblogs.com/furfur-jiang/p/12238713.html
Copyright © 2011-2022 走看看