超文本传输协议http

近日看了一些http相关的内容,整理一下知识点

0.为什么会有http?

在http之前,互联网是不能传递文档的,人们为了传递文件,规定了一套传递文件的规则。文件是广义的,可以是html,文本,声音,图像等各种文件

1.http是什么?

http是超文本传输协议。就是浏览器和服务器之间请求和响应的交互,必须按照规定的格式和遵循的一定队则,这些格式和规则就是超文本传输协议。也就是规定浏览器怎么请求万维网文档,和规定怎么把文档传送给浏览器。

2.万维网的大致工作流程

a.监听,服务器监听80端口,看是否有浏览器(万维网客户)的请求

b.一旦监听到,建立TCP连接

c.浏览器发出文件请求

d.服务器响应请求

e.TCP连接释放

3.http本身是无连接的

虽然http使用了tcp作为传输层协议,保证了数据的可靠传输,但是http本身是无状态的,在传递之前,不需要建立http连接

4.http协议是无状态的      

同一个客户,第二次访问同一个服务器上的页面时,服务器的响应 与第一次访问时相同。http的无状态特性简化了服务器的设计,是服务器更容易支持大量并发的http请求。

5.浏览器发送请求到接收到文档所需的时间


如上图所示,需要的时间是两倍的RTT+传输文档的时间(因为TCP第三次握手的时候,报文中捎带了客户对万维网文档的请求,而不是三次握手之后才开始的请求)

6.http/1.0的缺点

a.每请求一个文档,就要两倍的RTT的开销,如果一个页面有多个文档,开销就大了

b.万维网客户和服务器为每一次建立新的TCP连接都要分配缓存和变量,如果客户量大的情况下,这种非持续连接会使万维网服务器的负担加重。

7.HTTP/1.1的持续连接

http1.1解决了非持续连接的问题,使用了持续连接。万维网服务器在响应后,仍然在一段时间内保持这条连接。

http/1.1的持续连接有两种方式,非流水线方式和流水线方式

a.流水线方式,客户在收到前一个响应后才能发出下一个请求,比起非连接,减少了一个RTT。缺点是,服务器发送完一个对象后,其TCP就处于空闲状态,浪费了服务器资源。

b.流水线方式,客户在收到HTTP响应之前就能够接着发送新的请求报文 ,每个文档请求也是一个RTT,但是减少了服务器的空闲时间,提高了下载文档的效率。

8.代理服务器

代理服务器是一种网络实体,它又称为万维网高速缓存。

在pc浏览器发送请求报文的时候,先到达代理服务器,如果代理服务器有对应的请求报文,则在代理服务器端直接返回给pc

9.HTTP的报文结构

http报文有两类报文,(1)请求报文(2)响应报文

http是面向文本的,因此,在报文中的每一个字段都是一些ACSII码串,因而各个字段的长度都是不确定的。

 

http请求报文和响应报文都是由三部分组成。

(1)开始行,用于区分是请求报文还是响应报文。在请求报文中,开始行叫请求行。在响应报文中,开始行叫做状态行。在开始行的三个字段之间都是以空格隔开,最后的CRLF是回车换行。

(2)首部行,用来说明浏览器,服务器或报文主题的一些信息。

(3)实体主体,请求报文一般不用这个字段,响应报文也可能不用这个字段


         响应报文开始行中的状态码,都是三位数字的,分为5大类共33种

1xx表示通知信息的,如请求收到了或正在进行处理

2xx表示成功,如接受或知道了

3xx表示重定向,如要完成请求还必须采取进一步的行动

4xx表示客户的差错,如请求中有错的语法或不能完成

5xx表示服务器的差错,如服务器失效无法完成请求

10.在服务器上存放用户的信息

在使用cookie的服务器上,用户访问服务器的时候,响应报文中的首部行中多出一条cookie信息,浏览器接收到之后保存在本地cookie文本文档中,下次请求的时候,在请求报文中的首部行中添加一条cookie信息

超文本传输协议 HTTP 是一种在 Web 上进行数据通信的协议。它基于客户端-服务端模式,客户端向服务端发送请求,服务端向客户端发送响应。HTTP 协议的主要特点包括: - 简单快速:客户端向服务端请求时使用的方法(method)动词通常只有 GET 和 POST,请求报文和响应报文都是简单的结构体,因此通信快速。 - 灵活:HTTP 允许使用任意的 MIME 类型传输任何类型的数据对象。 - 无连接:HTTP 协议每次请求都会建立一次连接,请求结束后立即断开连接,这种方式会导致在处理多个请求时浪费时间和资源。为了解决这个问题,HTTP/1.1 引入了持久连接(Keep-Alive),可以在一个连接上处理多个请求。 - 无状态:HTTP 协议是一种无状态的协议,也就是说,它不会保留连接的状态信息。这意味着每次请求都是独立的,不能根据前一次请求的结果判断下一次请求的处理方式。 HTTP 还有一些其他的特点,例如: - 支持代理、缓存等功能。 - 报文编码方式灵活,支持文本、多媒体、程序文件等多种数据类型。 - 请求和响应报文支持多种编码方式,如日期编码、压缩编码等。 引用:注:协议 HTTP 不仅传送完成超文本跳转所必需的信息,而且也传送任何可从互联网上得到的信息,如文本、超文本、声音和图像等。 [^1]。引用:(3)HTTP/1.1的请求和响应报文是面向文本的(text-oriented)。当客户连续发送请求并受到响应时,在 TCP连接上传送的 HTTP 报文首部成为不小的开销。在这些首部中有很多段是重复的。为此,HTTP/2 把所有的报文都划分为许多较小的二进制编码的帧,并采用新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值