HTTP协议(Hypertext transfer protocol 超文本传输协议)
HTTP协议简介
它是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议;
它是基于TCP(Transmission Control Protocol)/IP(Internet Protocol)通信协议来传递数据(HTML 文件, 图片文件, 查询结果等);
HTTP是基于客户端/服务端(Client/Server)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
浏览器作为HTTP客户端通过URL(Uniform Resource Locator)向HTTP服务端即WEB服务器发送所有请求。
HTTP的特点
-
HTTP是无连接
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
-
HTTP是媒体独立的
这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME(Multipurpose Internet Mail Extensions)-type内容类型。
-
HTTP是无状态
HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP协议的通信流程
HTTP消息结构
HTTP“客户端”是一个应用程序,通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。
一个HTTP"服务器"同样也是一个应用程序,通过接收客户端的请求并向客户端发送HTTP响应数据。
-
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
一旦建立连接后,数据消息就通过类似Internet邮件所使用的格式[RFC5322]和多用途Internet邮件扩展(MIME)[RFC2045]来传送。
应用程序:为了完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序。
HTTP请求报表
HTTP请求由三部分组成,分别是:请求行、消息报头、请求正文;(中途包括可有可无的空行)
请求方法
HTTP响应消息
HTTP响应由三个部分组成,分别是:状态码、响应报头、响应体。(空行可有可无)
状态码
状态列表
响应头
HTTP工作流程
客户与服务器建立连接;
客户向服务器提出请求;
服务器接受请求,并根据请求返回相应的文件作为应答;
客户与服务器关闭连接。
本文感谢菜鸟教程HTTP知识的提供。
若有与读者所了解有所不同或之中有误,欢迎提出建议。