zoukankan      html  css  js  c++  java
  • HTTP/1.1 请求方法

      HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的 应用层协议。HTTP 是万维网的数据通信的基础。默认端口为 80

      设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。通过 HTTP 或者 HTTPS 协议请求的资源由 URI(Uniform Resource Identifiers,统一资源标识符)来标识。其中最著名的是 1999 年 6 月公布的 RFC 2616,定义了 HTTP 协议中现今广泛使用的一个版本 HTTP 1.1

      2014 年 12 月,互联网工程任务组(IETF)的 Hypertext Transfer Protocol Bis(httpbis)工作小组将 HTTP/2 标准提议递交至 IESG 进行讨论,于 2015 年 2 月 17 日被批准。HTTP/2 标准于 2015 年 5 月以 RFC 7540 正式发表,取代 HTTP/1.1 成为 HTTP 的实现标准。

    • HTTP 版本:
      • HTTP/0.9:已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,因此客户端无法向服务器传递太多信息。
      • HTTP/1.0:定义了 GET、POST 和 HEAD 3 种请求方法。这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。
      • HTTP/1.1:定义了 GET、POST、HEAD、PUT、OPTIONS、DELETE、TREACE、CONNECT 8 种请求方法。HTTP/1.1 相较于 HTTP/1.0 协议的区别主要在于:
        • 缓存处理
        • 带宽优化及网络连接的使用
        • 错误通知管理
        • 消息在网络中的发送
        • 互联网地址的维护
        • 安全性及完整性
      • HTTP/2:当前版本,与 2015 年 5 月作为互联网标准正式发布。
      • HTTP/3:是即将到来的第三个主要版本的 HTTP 协议,使用于万维网。在 HTTP/3 中,将弃用 TCP 协议,改为使用基于 UDP 协议的 QUIC 协议实现。QUIC(快速 UDP 网络连接)是一种实验性的传输层网络传输协议,由 Google 开发,该协议旨在取代 TCP 协议,使网页传输更快。

    • HTTP/1.1 的 8 种请求方法:
      • GET
        • 请求指定的页面信息,并返回实体主体。
      • HEAD
        • 类似于 GET 请求,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的主体部分,用于获取报头、确认 URI 的有效性及资源更新的日期时间等。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
      • POST
        • 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
      • PUT
        • 向指定资源位置上传其最新内容。
      • DELETE
        • 请求服务器删除指定页面/资源。
      • TRACE
        • 回显服务器收到的请求,主要用于测试或诊断。
      • OPTIONS
        • 这个方法可使服务器传回该资源所支持的所有 HTTP 请求方法。用“*”来代替资源名称,向 Web 服务器发送 OPTIONS 请求,可以测试服务器功能是否正常运作。
      • CONNECT
        • HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行 TCP 通信。主要使用 SSL(安全套接层)和 TSL(传输层安全)协议把通信内容加密后经网络隧道传输。
      • PATCH(由 RFC 5789 指定的方法)
        • 用于将局部修改应用到资源。
  • 相关阅读:
    一、代码风格
    Nginx之Eclipse开发环境配置
    Linux之tail命令实时收集[纠正误解]
    Java之"Mozilla Rhino"引擎(二)
    linux之tail -F命令异常file truncated
    Java之nio性能比较
    Java之nio MappedByteBuffer的资源释放问题
    Java之java.lang.IllegalMonitorStateException
    Java之线程池管理
    Java之NIO传输数据
  • 原文地址:https://www.cnblogs.com/wumz/p/10708439.html
Copyright © 2011-2022 走看看