初始HTTP
TCP协议的特点是:
- 面向连接
- 点对点(一对一)
- 可靠交付 面向字节流,也就是说仅仅把上层协议传递过来的数据当成字节传输。 为了实现TCP上述的特点,TCP协议需要解决的是面向连接(建立连接和关闭连接的方式)、可靠传输(错误确认和重传)、流量控制(发送方和接收方的传输速率协调)、拥塞控制四个方面。
协议分析
发展:
HTTP/0.9单行协议(请求Get/mypage.html,响应只有HTML文档) ->HTTP/1.0构建可扩展性->(增加了Header,有了状态码) HTTP/1.1标准化协议->(链接复用,缓存,内容协商) HTTP/2更优异的表现->(二进制协议,压缩Header,服务器推送) HTTP/3草案
HTTP 请求/响应
客户端和服务器之间的通信是通过请求和响应完成的:
- 客户端(浏览器)向网络发送HTTP 请求
- Web 服务器接收请求
- 服务器运行应用程序来处理请求
- 服务器向浏览器返回HTTP 响应(输出)
- 客户端(浏览器)收到响应
HTTP 请求圈
一个典型的 HTTP 请求/响应循环:
- 浏览器请求 HTML 页面。服务器返回一个 HTML 文件。
- 浏览器请求样式表。服务器返回一个 CSS 文件。
- 浏览器请求 JPG 图片。服务器返回一个 JPG 文件。
- 浏览器请求 JavaScript 代码。服务器返回一个JS文件
- 浏览器请求数据。服务器返回数据(XML 或 JSON 格式)。
HTTP 三点注意事项:
- HTTP 是无连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。
- HTTP 是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送,客户端以及服务器指定使用适合的 MIME-type 内容类型。
- HTTP 是无状态:HTTP 协议是无状态协议,无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时它的应答就较快。