HTTP全称为 Hypertext Transfer Protocol超文本传输协议,是一种为分布式、合作市、多媒体信息系统服务,面向应用层的协议。从90年代开始,成为了万维网数据通信的基础。
HTTP是一种通用和无状态的协议,采用了请求/响应的模型,客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、及包含请求修饰符等信息。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体信息以及可能的实体内容。
本质上,Http是一个基于TCP/IP的通信协议,可以在全世界范围里传输数据,例如Html文档、图片、搜索结果等。默认监听80端口,但是其它端口也是可以使用的。它为每个连接在互联网上的计算机提供了标准化的通信方式。HTTP标准规定了客户端的请求数据将会被怎样建造然后发送到服务端的,并且规定了服务端是如何相应这些请求的。
基本特征
HTTP有三个特征让它成为了简单而又非常强大的协议:
- HTTP是无连接的:例如一个浏览器的HTTP客户端发起一次HTTP请求,当请求创建成功后,它便会与服务端断开连接然而等待响应。然后服务端会处理这个请求,和重新客户端建立连接后发送回响应内容。
- HTTP是媒体独立的:它的意思是,任何类型的数据都是可以通过HTTP发送的,只要客户端和服务端都知道怎么去处理这个类型数据的内容。它需要客户端和服务端通过使用适当的MIME-type来制定内容的类型。
- HTTP是无状态的:如上所述,HTTP是无连接的,这是HTTP是无状态协议的直接结果。服务器和客户端只有在当前请求期间才知晓彼此,之后,他们便会忘记了彼此。由于协议的这种特性,客户端和服务器都不能在网页上的不同请求之间保留信息。
基本架构
如下图展示了Web应用程序的非常基本的架构,并描绘了HTTP所处的位置:
HTTP是一个客户端和服务器端请求和应答的标准,客户端是终端用户,它可以是浏览器、网络爬虫、搜索引擎等等,Web服务器则充当服务器。
客户端
客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、及包含请求修饰符等信息、客户信息和内容的类似于MIME的消息结构。
服务端
服务器以一个状态行作为相应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体信息以及可能的实体内容。
llalaal