HTTP/TCP

HTTP是短连接

http 为短连接:客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送"保持连接"的请求。这样可以保证客户端在服务器端是"上线"状态。

HTTP连接使用的是"请求-响应"方式,不仅在请求时建立连接,而且客户端向服务器端请求后,服务器才返回数据。

网络传输遇到的问题

网络模型高可拓展性

osi与tcpip的分层区别

DNS,HTTP是应用层的协议

TCP,UDP是传输层的协议

IPV4,IPV6是网络层的协议

以太网,交换机数据链路层

光纤,网线 是物理层

例如

再浏览器输入URL用http发送(应用层) -> http底层是用tcp连接传输的(传输层) ->找到要发送或者请求的主机的IP(网络层)->数据经过路由器交换机等工具(数据链路层) -> 然后经过网线传输(物理层)

一个HTTP的请求过程

HTTP协议

Http:是无状态的,以请求应答的方式运行的协议,使用可拓展的语义例如(header 可以自定义)

Httpd的报文格式

1、起始行(start line) :描述请求或者响应的信息 (get,post,put等)

请求行报文格式

响应行报文格式

2、头部字段集合(header):使用key-value形式更详细的说明报文(connection:ley-alive,Content-type:application/json)

 

3、消息正文:实际传输的数据,不一定是纯文本,可以是图片,二进制等 例如html 也不是必须的

Http完整的请求过程

1、浏览器解析域名

2、网络请求->TLS握手(HTTPS的)(TCP三次握手)->发起Http请求得到结果->TCP四次挥手断开了连接

具体流程如下

TCP协议

什么是tcp协议:面向连接的可靠的基于字节流的传输层通讯协议

TCP的特点:

对上面 面向连接 的解释 连接就是三次握手

基于连接的:数据传输前需要建立连接(三次握手)

全双工的:双向传输数据

字节流:不限制数据大学,打包成报文段,包装有序的接受,重复的报文会自动丢弃

(字节流理解:如果文件非常大,会对文件进行切割分片,然后进行排序(例如1,2,3,4),通过网络介质到达服务器,问题就是可以从很多线路到服务器(例如4,2,1,3),然后再进行重排序(1,2,3,4),然后再给到服务端处理)

流量缓存:解决双方处理能力的不匹配,(TCP三次握手的时候双方会建立一个缓冲区)

可靠的传输服务:保证可达,丢包时通过重发机制实现可靠性,(一定要收到服务端的响应才算发送成功)

拥塞控制:防止网络出现恶意拥塞(网络差的情况下,会考虑生成的网络报文的大小和访问速率的大小)

TCP连接管理

1、TCP连接器:四源组(源地址,源端口,目的地址,目的端口)

2、确立连接:TCP三次握手

TCP的流

标志符解释

SYN表示建立连接,

FIN表示关闭连接,

ACK表示响应,

PSH表示有 DATA数据传输,

RST表示连接重置。

三次握手是怎么执行的(彼此同意连接行为)

为什么是三次:

传的都是传输控制层的控制数据

因为可以确保数据的稳定传输,在第二步的时候服务端发送了ack 然后客户端响应了 说明是连通的

SYN(连接标识)表示建立连接,

1、客户端 发送SYN连接标识和seq=x(seq:请求序列号)的序列号给服务端

2、服务端 发送SYN标识和seq=y  ack = x+1 (ack:应答序列号)的序列号给客户端

3、客户端发送ack=y+1给服务端

连接成功

 

四次挥手怎么执行(彼此同意断开情节类似“离婚”得双方同意)

传的都是传输控制层的控制数据

主要:主动方看做客户端,被动看做服务端  但是双方都看主动关闭

1、主动方(A)发送FIN关闭请求,和seq请求序列号给被动方(B)男:我想离婚

2、B收到请求,返回ack=i+1应答序列号给A  女:嗯

3、B再次发送FIN关闭请求和seq=j序列号给A 女:我也想离婚

4、A收到请求后发送ACK=j+1应答序列给B,B服务可以释放资源 男:好的

以上为四次挥手

关闭后主动方需等到2MSL(一个请求来回的时候  A-B和B-A 的时间)

为什么A等到2MSL后释放连接,一、防止报文丢失,导致B重复发送FIN请求

二、防止滞留的网络中的报文,对新建立的连接照造成数据扰乱(等断后的报文传完)

数据的可靠性传输

TCP报文丢失了,TCP会启动重传,如果是网络慢,导致重复传输,TCP也会过来掉重复的报文

1、停止等待协议

2、重传机制

ACK丢失和SEQ的丢失都会重传

 

3、滑动窗口协议与累积确认

滑动窗口的大小通过TCP三次握手和对端协商,而且受网络状况影响

如果1,2的报文成功 3 是错误的  3以后的报文全部重发

HTTPS协议

HTTP->SSL/TSL加密再用TCP传输

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值