http协议
http是一个面向事务的应用层协议。
http规定http客户和服务器之间的每次交互都由一个ASCII码串和一个类似通用英特尔邮件扩充。
访问一个网站:
当点击一个链接时,会有一个URL(http://www.xxxxx.com/xxxx/xx.html)
1.浏览器分析URL
2.浏览器DNS请求解析IP地址
3.获取IP后进行TCP连接
4.发出文件提取命令xxx.html
5.做出相应,把文件发送给浏览器
6.释放TCP连接
http/1.0:
http1.0是一种非持续链接,每次请求一个文档都需要2倍往返时间(RTT),三次握手 + 一次传输文件
如果有很多链接需要依此打开会使服务器负担很重.
http/1.1:
http1.1是一种持续连接,有两种工作方式,非流水线 和 流水线。
1.非流水线:在收到前一个响应后才能发送下一个请求。
2.流水线:可以不断的发送请求,然后等待服务器的响应。
d代理服务器(万维网高速缓存):
会将最近的一些请求暂时保存到本地磁盘,当新的请求到达时,若发现与暂存相同,则返回暂存的相应。
服务器上存放用户信息:
像淘宝一些网站希望能够识别用户,可以将商品加入购物车
万维网可以通过cookie来跟踪用户,当xxx访问网站的时候,服务器会给xxx发送的http响应报文中
加上一个set-cookie,作为用户的识别码。
HTTP/2与HTTP 1.1相比,主要区别包括:
1.HTTP/2采用二进制格式而非文本格式
2.HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行
3.使用报头压缩,HTTP/2降低了开销
4.HTTP/2让服务器可以将响应主动“推送”到客户端缓存中
当浏览器请求一个网页时,服务器将会发回HTML,在服务器开始发送JavaScript、图片和CSS前,服务器需要等待浏览器解析HTML和发送所有内嵌资源的请求。 服务器推送服务通过“推送”那些它认为客户端将会需要的内容到客户端的缓存中,以此来避免往返的延迟。