超文本传输协议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信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值