09-其它

系列文章:

01-计算机网络的体系结构
02-IP网络层
03-TCP和UDP的基本认识
04-TCP三握四挥
05-TCP的重传机制
06-TCP的流量控制,拥塞控制
07-Http的基础知识
08-HTTPS与加密
09-其它

一. websocket

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。全双工就是指客户端和服务端可以同时进行双向通信,强调同时、双向通信。ping(pong)。

其实TCP本来就支持全双工,只是由于我们常用的HTTP必须是请求-响应模式的,所以Http就没法实现websocket这种。

二. 在浏览器中输入网址后会发生什么

1. DNS域名解析

我们在浏览器输入网址,其实就是要向服务器请求我们想要的页面内容,所有浏览器首先要确认的是域名所对应的服务器在哪里。将域名解析成对应的服务器IP地址这项工作,是由DNS服务器来完成的。

客户端收到你输入的域名地址后,它首先去找dns首先回去检测浏览器缓存,然后是操作系统缓存,然后是host文件,如果有则向其IP地址发送请求,如果没有,再去找DNS服务器。

浏览器客户端向本地DNS服务器发送一个含有域名www.cnblogs.com的DNS查询报文。本地DNS服务器把查询报文转发到根DNS服务器,根DNS服务器注意到其com后缀,于是向本地DNS服务器返回comDNS服务器的IP地址。本地DNS服务器再次向comDNS服务器发送查询请求,comDNS服务器注意到其www.cnblogs.com后缀并用负责该域名的权威DNS服务器的IP地址作为回应。最后,本地DNS服务器将含有www.cnblogs.com的IP地址的响应报文发送给客户端。

2. 建立TCP连接

三次握手

简单点:

客户端:“你好,在家不,有你快递。”

服务端:“在的,送来就行。”

客户端:“好嘞。”

大致流程:

  1. 客户端想服务器发送建立连接的请求,就会将SYN字段置为1,并随机生成一个随机数seq=x,发送给服务器

    客户端进入 SYN_SEND 状态。

  2. 服务器收到后,就知道客户端想要建立连接,这个时候就会将ACK置为1,ack=x+1,SYN置为1,seq=y。发送给客户端

    服务器进入 SYN_RCVD 状态

  3. 客户端收到后,就知道服务器也可以建立连接,然后就会ACK置为1,ack=y+1发送给服务器,这样就建立好连接了。

    均进入ESTABLISHED状态。

3. 发送HTTP请求

与服务器建立连接后,就可以发送HTTP请求了,向服务器请求资源。

4. 服务器处理请求

服务器收到客户端的http请求后,就会web服务器处理,web服务器就会解析用户的请求,知道需要调度哪些资源,然后收集并处理这些资源并将结果返回给客户端。

5. 返回响应

客户端就会收到服务器发回来的响应报文,然后解析这个报文,读取里面的信息。

6. 四次挥手,断开连接
  1. 如果客户端想要关闭连接,那就会给服务器发送一个FIN为1,seq=x的包,告诉服务器自己已经没有数据需要发送了,但是还可以接收数据。
  2. 服务器收到后,就会给客户端发送一个确认包,确认自己受到了消息,包内容为ACK=1,ack=x+1。表明自己已经收到了消息,但是还没有准备好关闭连接
  3. 服务器发送完消息后,准备好关闭连接时,就会给客户端发送关闭请求,FIN=1 seq=y
  4. 客户端收到后,就会发送一个确认包(ACK=1 ack = y+1),然后关闭连接,服务器收到这个消息后,也会关闭连接。
7. 解析HTML
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值