停止等待协议相关c语言,http的响应过程 - walking_yxf的个人空间 - OSCHINA - 中文开源技术交流社区...

1.HTTP协议的过程

这张图里讲了HTTP的具体过程

服务器通过TCP 80端口来监听HTTP请求

注意HTTP可以不一次性下载完页面的所有资源,可以只下载文本部分,其他音频视频等待用户下一步请求之后再传输

aabc024392e9376170b04a2c92e95dec.png

2 HTTP协议的特点

8b01cab701b95e9610838423bd7711d9.png

keep-alive:

在请求头中设置Connection: close,请求完成之后就关闭当前tcp连接

在请求头中设置Connection: keep-alive,可以保持一段时间的tcp连接,比如keep-alive timeout=10s,则一个请求完成之后10s内,tcp连接依然存在,期间再次发出请求,则刷新timeout的断开时间

2.1 HTTP的连接方式——持久连接和非持久连接

非持久连接在TCP三次握手的第三次握手时发生,将HTTP请求作为第三次握手的数据部分发给服务器,服务器收到请求之后将HTTP相应报文传输给客户。耗时就是RTT*2+文档传输时间。

缺点就是这样如果再想传输,那么就需要重新建立TCP连接从头开始

持久连接和非持久连接类似,都是在第三次握手时发生,将HTTP请求作为第三次握手的数据部分发给服务器,服务器收到请求之后将HTTP相应报文传输给客户。但是持久连接再需要请资源的时候就不需要建立新的TCP连接了

29bf2b4f0c318b3af14995a8be51dfac.png

持久连接的两种方式——非流水线和流水线

非流水线就是发一个,确认一个,才能再发下一个

流水线就是一个个连着发,然后多个确认

和之前说过的停止等待协议,后退N帧协议和选择重传协议很像,忘了的话可以去复习一下

开个传送门计算机网络笔记Part3 数据链路层(Data Link Layer)

2.2 HTTP的报文结构

开始行用于区别请求报文和响应报文。可以明显的看到两者第一行的东西都不一样

请求报文的方法是指命令,就是对所请求的对象进行什么操作,如获取/删除等等

URL就是之间说的资源标识符

版本是指使用的是什么版本的HTTP协议

CRLF相当于我们程序里面的;,标识一行的结束。同时,在整个首部行结束时,为了区别首部行和实体主体还会有一行单独的CRLF

94867349017bffed9aa8fb5ad343d8f4.png

这里举了请求报文的例子,和一些常用的状态码

e183095d6a8343e65fa8f442531b4d5d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值