HTTP协议详解

一:HTTP协议简介

        超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

        HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是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协议详解_第1张图片

 二:HTTP协议格式

1,请求报文格式

HTTP协议详解_第2张图片

请求报文的首部内容由以下数据组成:

  • 请求行 —— 包含用于请求的方法、请求 URI 和 HTTP 版本。
  • 首部字段 —— 包含表示请求的各种条件和属性的各类首部。(通用首部、请求首部、实体首部以及RFC里未定义的首部如 Cookie 等)

请求报文的示例,如下:

HTTP协议详解_第3张图片

2,响应报文格式

HTTP协议详解_第4张图片

响应报文的首部内容由以下数据组成:

  • 状态行 —— 包含表明响应结果的状态码、原因短语和 HTTP 版本。
  • 首部字段 —— 包含表示请求的各种条件和属性的各类首部。(通用首部、响应首部、实体首部以及RFC里未定义的首部如 Cookie 等)

响应报文的示例,如下:

HTTP协议详解_第5张图片

三:请求方法

HTTP协议详解_第6张图片

GET请求

GET请求是最常用的请求方式,用于向服务器请求获取某个资源。GET请求的参数会附加在URL的后面,以问号(?)分隔,例如:http://www.example.com/?name=Tom&age=18。GET请求的特点是请求参数明文传输,请求长度有限制,不适合传输敏感信息。

POST请求

POST请求用于向服务器提交数据,通常用于表单提交、文件上传等场景。POST请求的参数不会附加在URL的后面,而是包含在请求体中,以二进制形式传输,可以传输大量数据。POST请求的特点是请求参数不可见,请求长度无限制,适合传输敏感信息。

PUT请求

PUT请求用于向服务器更新某个资源,通常用于上传文件、更新数据等场景。PUT请求的参数也包含在请求体中,以二进制形式传输。PUT请求的特点是请求具有幂等性,即重复请求不会对服务器产生影响。

DELETE请求

DELETE请求用于向服务器删除某个资源,通常用于删除文件、删除数据等场景。DELETE请求的参数也包含在请求体中,以二进制形式传输。DELETE请求的特点是请求具有幂等性,即重复请求不会对服务器产生影响。

HEAD请求

HEAD请求用于向服务器请求获取某个资源的头部信息,通常用于检查资源是否存在、获取资源的元数据等场景。HEAD请求的特点是只返回响应头部信息,不返回响应体,可以减少网络流量和服务器负载。

OPTIONS请求

OPTIONS请求用于向服务器请求获取某个资源所支持的HTTP请求方式,通常用于Web API的开发和调试。OPTIONS请求的特点是只返回支持的请求方式,不返回响应体,可以帮助开发者了解Web API的使用方法。

四:响应码

常见的响应码如下: 

HTTP协议详解_第7张图片

对于响应码,第一位数字是有意义的

HTTP协议详解_第8张图片

你可能感兴趣的:(Others,http)