计算机网络零碎知识点

1.Time_Wait作用

网上看了好多答案感觉都太抽象,《网络是怎样连接》一书中对TimeWait的解释是为了防止误操作

等待这段时间是为了防止误操作,引发误操作的原因有很多,举一个最容易理解的例子:
如果客户端进行挥手四次挥手,最后返回ACK号丢失了,结果会如何?这是,服务器没有受到ACK号,可能会重发一次FIN。如果这是客户端的套接字已经删除了,会发生什么事呢?套接字被删除,套接字对应的端口会被释放出来,这时如果别的应用程序要创建套接字,碰巧又分配到了同一个端口,而服务器重发的FIN正好到达,会怎么样呢?本来这个FIN是要发给刚刚删除的那个套接字的,但新套接字具有相同的端口号,这个FIN就错误的跑到新的套接字里,新套接字就开始执行断开操作了

具体等待时间一般是2msl(2倍的最大报文存活时间,一来一回)
总结

针对客户端:防止误操作
针对服务端:使服务端正常执行套接字关闭

2.http长连接和websocket

  • 1.http长连接1.0中不支持,1.1中才出现,使用keep-alive标识,一个连接中,多个request和response,并没有真的会话状态,是“伪长连接”
  • 2.websocket跟Http基本上完全是两个协议,是为了遵循浏览器规范,所以websocket的连接请求使用http三次握手

知乎大佬高票回答

3.Http和tcp区别?什么时候选择用tcp而不用http

4.常见网络协议对应端口

协议端口
HTTP80
HTTPS443
DNSUPD 53
DHCP Server67
DHCP Client68

5.浏览器输入域名的DNS查询过程

浏览器缓存->系统缓存(通过系统调用来获取)->本地hosts文件->路由器缓存->ISP或者本地DNS服务器->递归查询
详细的查看大佬博客

6.GET和POST区别

网上抄的

  • 1.get幂等,post不是幂等
  • 2.get浏览器回退无害,post会再次提交
  • 3.get只能进行url编码,post可以支持多种编码方式
  • 4.post比get更加安全,因为get参数会显示在url上
  • 5.GET请求会被浏览器主动cache,而POST不会,除非手动设置
  • 5.GET产生一个TCP数据包;POST产生两个TCP数据包
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值