超文本传输协议(HTTP)是用于分布式,协作的超媒体信息系统的应用级协议。这是自1990年以来万维网(即互联网)的数据通信的基础。HTTP是一种通用和无状态协议,可以用于其他目的,也可以使用其请求方法,错误代码和标题的扩展。
基本上,HTTP是一种基于TCP / IP的通信协议,用于在万维网上传递数据(HTML文件,图像文件,查询结果等)。默认端口为TCP 80,但也可以使用其他端口。它提供了计算机相互通信的标准化方式。HTTP规范指定客户端的请求数据将如何创建并发送到服务器,以及服务器如何响应这些请求。
有三个基本功能使HTTP成为简单而强大的协议:
HTTP是无连接的: HTTP客户端,即浏览器发起HTTP请求,请求完成后,客户端将从服务器断开连接并等待响应。服务器处理请求并重新建立与客户端的连接以发送回应。
HTTP是独立于媒体的:这意味着只要客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器需要使用适当的MIME类型来指定内容类型。
HTTP是无状态的:如上所述,HTTP是无连接的,它是HTTP作为无状态协议的直接结果。服务器和客户端仅在当前请求期间才能彼此了解。之后,他们都忘了彼此。由于协议的这种性质,客户端和浏览器都不能在网页上的不同请求之间保留信息。
HTTP / 1.0对每个请求/响应交换使用新的连接,其中HTTP / 1.1连接可用于一个或多个请求/响应交换。
下图显示了Web应用程序的非常基本的架构,并描绘了HTTP所在的位置:
HTTP协议是基于客户端/服务器的架构的请求/响应协议,其中Web浏览器,机器人和搜索引擎等作用为HTTP客户端,Web服务器充当服务器。
HTTP客户端以请求方式,URI和协议版本的形式向服务器发送请求,其后是包含请求修饰符,客户端信息和通过TCP / IP连接的可能身体内容的类似MIME的消息。
HTTP服务器使用状态行进行响应,包括消息的协议版本和成功或错误代码,之后是包含服务器信息,实体元信息和可能的实体体内容的类似MIME的消息。