一、HTTP是什么
HTTP全称为Hyper Text Transfer Protocol,被译为超文本传输协议,是互联网上应用最为广泛的—种网络协议。
HTTP协议是在Web上进行数据交换的基础,是一种“客户端-服务器端”协议。也就是说,请求通常是由像刘览器这样的接受方发起的。一个完整的Web文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
二、HTTP协议历史与标准
HTTP/O.9: 1991年制定,有严重设计缺陷,只支持GET方法,不支持MIIME类型,很快被\nHTTP/1.0取代。
HTTP/1.0: 1996年制定,支持多种请求方法,支持多媒仲对象,得到广泛应用。
HTTP/10+:支持持久连接、虚拟主机、代理连接等新特性,成为非官方的事实标准。
HTTP/11: 1999年制定,校正HTTP中的设计缺陷,性能优化,删除一些不好的特性。
HTTP-NG(或HTTP/20):关注HTTP协议的性能优化以及更强大的服务逻辑远程执行框架,研究工作仍在进行中。
三、HTTP请求与响应消息
客户端和服务端通过交换各自的消息(与数据流正好相反)进行交互。
由像浏览器这样的客户端发出的消息叫做请求( requests )
被服务端回应的消息叫做响应(responses )
四、概述
user-agent就是任何能够为用户发起行为的工具。这个角色通常都是由刘览器来扮演。一些例外情况,比如是工程师使用的程序,以及Web开发人员调试应用程序。
浏览器总是作为发起一个请求的实体(近几年已经出现一些机制能够模拟由服务器发起的请求消息,例如Nodejs )。
浏览器首先发送一个请求来获取页面的HTML文档,再解析文档中的资源信息发送其他请求,获取可执行脚本或CSS样式来进行页面布局渲染,以及一些其它页面资源(如图片和视频等)。然后,浏览器将这些资原整合到一起,展现出一个完整的文档,也就是网页。