网站数据库 备份,专业网站名词解释,重庆网上找工作哪个网站好,网页浏览器的缩写超文本传输协议#xff08;Hyper Text Transfer Protocol#xff0c;HTTP#xff09;是一个简单的请求-响应协议#xff0c;它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出#xff1b;而消息内…超文本传输协议Hyper Text Transfer ProtocolHTTP是一个简单的请求-响应协议它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣因为它使开发和部署非常地直截了当。 中文名超文本传输协议外文名HTTP工作层应用层基础架构在TCP上适用浏览器Firefox、Google Chrome等 简介
万维网WWWWorld Wide Web发源于欧洲日内瓦量子物理实验室CERN正是WWW技术的出现使得因特网得以超乎想象的速度迅猛发展。这项基于TCP/IP的技术在短短的十年时间内迅速成为已经发展了几十年的Internet上的规模最大的信息系统它的成功归结于它的简单、实用。在WWW的背后有一系列的协议和标准支持它完成如此宏大的工作这就是Web协议族其中就包括HTTP超文本传输协议。
在1990年HTTP就成为WWW的支撑协议。当时由其创始人WWW之父蒂姆·伯纳斯·李Tim Berners-Lee提出随后WWW联盟WWW Consortium成立组织了IETFInternet Engineering Task Force小组进一步完善和发布HTTP。
HTTP是应用层协议同其他应用层协议一样是为了实现某一类具体应用的协议并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范这种规范记录在文档上为真正通过HTTP进行通信的HTTP的实现程序。
HTTP是基于B/S架构进行通信的而HTTP的服务器端实现程序有httpd、nginx等其客户端的实现程序主要是Web浏览器例如Firefox、Internet Explorer、Google Chrome、Safari、Opera等此外客户端的命令行工具还有elink、curl等。Web服务是基于TCP的因此为了能够随时响应客户端的请求Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP进行通信了。
发展阶段
0.9
0.9协议是适用于各种数据信息的简洁快速协议但是远不能满足日益发展的各种应用的需要。0.9协议就是一个交换信息的无序协议仅仅限于文字。由于无法进行内容的协商在双发的握手和协议中并有规定双发的内容是什么也就是图片是无法显示和处理的。
1.0
到了1.0协议阶段也就是在1982年Tim Berners-Lee提出了HTTP/1.0。在此后的不断丰富和发展中HTTP/1.0成为最重要的面向事务的应用层协议。该协议对每一次请求/响应建立并拆除一次连接。其特点是简单、易于管理所以它符合了大家的需要得到了广泛的应用。
1.1
在1.0协议中双方规定了连接方式和连接类型这已经极大扩展了HTTP的领域但对于互联网最重要的速度和效率并没有太多的考虑。毕竟作为协议的制定者当时也没有想到HTTP会有那么快的普及速度。
关于HTTP1.1协议的具体内容可以参考RFC 2616。
2.0
HTTP2.0的前身是HTTP1.0和HTTP1.1。虽然之前仅仅只有两个版本但这两个版本所包含的协议规范之庞大足以让任何一个有经验的工程师为之头疼。网络协议新版本并不会马上取代旧版本。实际上1.0和1.1在之后很长的一段时间内一直并存这是由于网络基础设施更新缓慢所决定的。
关于HTTP2.0协议的具体内容可以参考RFC 7540。
应用场景
HTTP诞生之初主要是应用于WEB端内容获取那时候内容还不像现在这样丰富排版也没那么精美用户交互的场景几乎没有。对于这种简单的获取网页内容的场景HTTP表现得还算不错。但随着互联网的发展和WEB2.0的诞生更多的内容开始被展示更多的图片文件排版变得更精美更多的CSS更复杂的交互也被引入更多的JS。用户打开一个网站首页所加载的数据总量和请求的个数也在不断增加。
今天绝大部分的门户网站首页大小都会超过2M请求数量可以多达100个。另一个广泛的应用是在移动互联网的客户端app不同性质的app对HTTP的使用差异很大。对于电商类app加载首页的请求也可能多达10多个。对于微信这类IMHTTP请求可能仅限于语音和图片文件的下载请求出现的频率并不算高。
工作原理
HTTP是基于客户/服务器模式且面向连接的。典型的HTTP事务处理有如下的过程 1客户与服务器建立连接 2客户向服务器提出请求 3服务器接受请求并根据请求返回相应的文件作为应答 4客户与服务器关闭连接。 客户与服务器之间的HTTP连接是一种一次性连接它限制每次连接只处理一个请求当服务器返回本次请求的应答后便立即关闭连接下次请求再重新建立连接。这种一次性连接主要考虑到WWW服务器面向的是Internet中成千上万个用户且只能提供有限个连接故服务器不会让一个连接处于等待状态及时地释放连接可以大大提高服务器的执行效率。 HTTP是一种无状态协议即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担从而保持较快的响应速度。HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小并允许对数据进行压缩传送。当用户在一个HTML文档中定义了一个超文本链后浏览器将通过TCP/IP协议与指定的服务器建立连接。 HTTP支持持久连接在HTTP / 0.9和1.0中连接在单个请求/响应对之后关闭。在HTTP / 1.1中引入了保持活动机制其中连接可以重用于多个请求。这样的持久性连接可以明显减少请求延迟因为在发送第一个请求之后客户端不需要重新协商TCP 3-Way-Handshake连接。另一个积极的副作用是通常由于TCP的缓慢启动机制连接随着时间的推移而变得更快。 该协议的1.1版还对HTTP / 1.0进行了带宽优化改进。例如HTTP / 1.1引入了分块传输编码以允许流传输而不是缓冲持久连接上的内容。HTTP流水线进一步减少了延迟时间允许客户端在等待每个响应之前发送多个请求。协议的另一项附加功能是字节服务即服务器仅传输客户端明确请求的资源部分。 从技术上讲是客户在一个特定的TCP端口端口号一般为80上打开一个套接字。如果服务器一直在这个周知的端口上倾听连接则该连接便会建立起来。然后客户通过该连接发送一个包含请求方法的请求块。 HTTP规范定义了9种请求方法每种请求方法规定了客户和服务器之间不同的信息交换方式常用的请求方法是GET和POST。服务器将根据客户请求完成相应操作并以应答块形式返回给客户最后关闭连接。
运作方式
在WWW中“客户”与“服务器”是一个相对的概念只存在于一个特定的连接期间即在某个连接中的客户在另一个连接中可能作为服务器。基于HTTP的客户/服务器模式的信息交换过程它分四个过程建立连接、发送请求信息、发送响应信息、关闭连接。 HTTP是基于请求/响应范式的。一个客户机与服务器建立连接后发送一个请求给服务器请求方式的格式为统一资源标识符、协议版本号后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后给予相应的响应信息其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码后边是MIME信息包括服务器信息、实体信息和可能的内容。其实简单说就是任何服务器除了包括HTML文件以外还有一个HTTP驻留程序用于响应用户请求。你的浏览器是HTTP客户向服务器发送请求当浏览器中输入了一个开始文件或点击了一个超级链接时浏览器就向服务器发送了HTTP请求此请求被送往由IP地址指定的URL。驻留程序接收到请求在进行必要的操作后回送所要求的文件。在这一过程中在网络上发送和接收的数据已经被分成一个或多个数据包packet每个数据包包括要传送的数据控制信息即告诉网络怎样处理数据包。TCP/IP决定了每个数据包的格式。如果事先不告诉你你可能不会知道信息被分成用于传输和再重新组合起来的许多小块。