【HTTP】一、HTTP协议简介及其工作流程

【HTTP】⼀、HTTP协议简介及其⼯作流程
  协议是指计算机通信⽹络中两台计算机之间进⾏通信所必须共同遵守的规定或规则,超⽂本传输协议(HTTP)是⼀种通信协议,它允许将超⽂本标记语⾔(HTML)⽂档从Web服务器传送到客户端的浏览器
(⼀)HTTP协议简介
  HTTP(超⽂本传输协议)是⼀个应⽤层协议,它是互联⽹的⼀个基础协议,它规定了浏览器如何向万维⽹服务器请求万维⽹⽂档、服务器如何把⽂档传给浏览器。HTTP是⾯向事务的应⽤层协议,它是万维⽹可以进⾏可靠⽂件交换的重要基础。对于技术岗位的程序员来说理解掌握HTTP协议是必须的。碳片
1、万维⽹概述
日晕是怎么回事  万维⽹实际上我们并不陌⽣,实际它并不是⼀个⽹络,⽽是⼀个⼤规模的、联机式的信息储藏所,是⼀个分布式的超媒体系统。⼀个超⽂本由多个信息源链接⽽成。利⽤⼀个链接可使⽤户到另⼀个⽂档。这些⽂档可以位于世界上任何⼀个接在因特⽹上的超⽂本系统中。超⽂本是万维⽹的基础。
  万维⽹以客户-服务器⽅式⼯作。客户程序就是⽤户计算机上的各种浏览器,万维⽹⽂档所驻留的机器就成为服务器,客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维⽹⽂档。
摇滚年  万维⽹必须解决的⼏个问题:
为了标志分布在整个因特⽹上的万维⽹⽂档,使⽤了统⼀资源定位符URL。每⼀个⽂档在整个因特⽹的范围内具有唯⼀的标识符 URL。
为了实现万维⽹上各种超链之间的链接,使⽤了HTTP协议。
为了使各种万维⽹⽂档都能在因特⽹上的各种计算机上显⽰出来,使⽤了浏览器和HTML语⾔。
2、HTTP的版本演变
  HTTP规定了客户端和服务器之间的通信格式,默认使⽤端⼝80,最早版本是1991年发布的0.9版。该版本极其简单,只有⼀个命令get,只能传输HTML⽂本。
  1996年,发布了HTTP的1.0版本,这⼀版才加⼊了⼤量的内容,使得互联⽹不仅可以传输⽂字,还
能传输图像、视频、⼆进制⽂件等,报⽂格式也规定下来,引⼊了post和head等命令,是第⼀个⽐较成熟的版本。然⽽,1.0版本的主要缺点是每个HTTP连接只能发送⼀个请求(短连接),发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建⼀个连接。这就会带来很多不必要的开销。
  1997年,发布了HTTP的1.1版本,这⼀版将HTTP更加完善,直到现在还是主要的使⽤版本。1.1 版的最⼤变化,就是引⼊了持久连接(长连接),在响应完第⼀个请求之后,TCP连接默认不关闭,可以被多个请求复⽤,这样就客服了1.0版本的缺陷。除此之外,还引⼊了管道机制:⼀次可以发送多个请求,增加了put、delete等命令。
  2015年,HTTP/2 发布(不叫 HTTP/2.0,不再发布⼦版本,下⼀个是3),HTTP2的变化在于:(1)⼆进制协议,头信息和数据体都是⼆进制,统称为帧(头信息帧和数据帧)。(2)多⼯,双向实时通信,复⽤TCP连接,在⼀个连接⾥,客户端和浏览器都可以同时发送多个请求或回应,⽽且不⽤按照顺序⼀⼀对应,这样就避免了"队头堵塞"。(3)数据流。据包是不按顺序发送的,同⼀个连接⾥⾯连续的数据包,可能属于不同的回应。因此,必须要对数据包做标记,指出它属于哪个回应。(4)头信息压缩机制。(5)允许服务器推送。允许服务器未经请求,主动向客户端发送资源,这叫做服务器推送。
  关于HTTP的版本演化,读到了⼀篇⽐较详细的博客,可以参考:.
3、HTTP协议的特点
以客户-服务器⽅式⼯作。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维⽹⽂档。
简单快速。**当客户端向服务器端发送请求时,只是简单的填写请求路径和请求⽅法即可,然后就可以通过浏览器或其他⽅式将该请求发送就⾏了。 **
灵活。HTTP 协议允许客户端和服务器端传输任意类型任意格式的数据对象。
⽆连接:HTTP虽然传输层使⽤了⾯向连接的TCP协议,但是HTTP本⾝是⽆连接的,⽆连接的含义是限制每次连接只处理⼀个请求(短连接)。服务器处理完客户
的请求,并收到客户的应答后,即断开连接,采⽤这种⽅式可以节省传输时间。(1.1版本引⼊持久连接,客服了这个缺陷)。
⽆状态。⽆状态是指协议对于事务处理没有记忆能⼒,服务器不知道客户端是什么状态,不会记录客户的信息。(使⽤Cookie和Session可以解决这个问题)。(⼆)HTTP的操作过程
1、HTTP⼯作流程
  每个万维⽹的⽹点都有⼀个服务器进程,它不断的监听TCP端⼝80,以便发现是否有浏览器向它发出连接请求,⼀旦坚挺到连接建⽴请求,就通过三次握⼿建⽴TCP连接,然后浏览器会向服务器发出浏览某个页⾯的请求,服务器接着返回所请求的页⾯作为响应,然后TCP连接就被释放了。
  这些响应和请求报⽂都遵循⼀定的格式,这就是HTTP协议所规定的。米巧铭
2、点击⼀个URL会发⽣的⼀系列事件
  (1) 浏览器分析超链指向页⾯的 URL。
  (2) 浏览器向 DNS 请求解析 www.tsinghua.edu 的 IP 地址。
  (3) 域名系统 DNS 解析出清华⼤学服务器的 IP 地址。
  (4) 浏览器与服务器建⽴ TCP 连接
  (5) 浏览器发出取⽂件命令:如 GET /chn/yxsz/index.htm。
  (6) 服务器给出响应,把⽂件 index.htm 发给浏览器。
  (7) TCP 连接释放。
  (8) 浏览器显⽰“清华⼤学院系设置”⽂件 index.htm 中的所有⽂本。
3、代理服务器
  代理服务器(proxy server)⼜称为万维⽹⾼速缓存(Web cache),它代表浏览器发出HTTP请求。代理
服务器把最近的⼀些请求和响应暂存在本地磁盘中。当与暂时存放的请求相同的新请求到达时,万维⽹⾼速缓存就把暂存的响应发送出去,⽽不需要按URL的地址再去因特⽹访问该资源。
  在不使⽤代理服务器时,所有的主机都需要与因特⽹上的服务器建⽴连接,会使得链路负载⽐较⼤;使⽤代理服务器可以降低链路的压⼒。
  使⽤⾼速缓存的情况:
  (1)浏览器访问因特⽹的服务器时,要先与校园⽹的⾼速缓存建⽴TCP连接,并向⾼速缓存发出HTTP请求报⽂
  (2)若⾼速缓存已经存放了所请求的对象,则将此对象放⼊HTTP响应报⽂中返回给浏览器。
  (3)否则,⾼速缓存就代表发出请求的⽤户浏览器,与因特⽹上的源点服务器建⽴TCP连接,并发送HTTP请求报⽂。
解缙
铁托名言  (4)源点服务器将所请求的对象放在HTTP响应报⽂中返回给校园⽹的⾼速缓存。
  (5)⾼速缓存收到此对象后,先复制在其本地存储器中(为今后使⽤),然后再将该对象放在HTTP响应报⽂中,通过已建⽴的TCP连接,返回给请求该对象的浏览器。
  总结起来,代理服务器有时作为服务器接受来⾃浏览器的HTTP请求,有时⼜会作为客户去向因特⽹上的原点服务器发送HTTP请求,具有双重⾝份。同时,由于使⽤了⾼速缓存,相当⼤的⼀部分通信量都限制在了校园⽹的内部,减⼩了⽹络链路的负载。

本文发布于:2024-09-23 06:27:32,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/164599.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:请求   连接   服务器   浏览器   协议   发送   客户端   响应
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议