TCP 报文可能与新 TCP 连接报文冲突,造成数据冲突,为避免此种情况,
需要耐心等待网络老的 TCP 连接的活跃报文全部死翘翘,2MSL 时间可
以满足这个需求(尽管非常保守)!
CLOSE_WAIT 是被动关闭连接是形成的。根据 TCP 状态机,服务器端收
到客户端发送的 FIN,则按照 TCP 实现发送 ACK,因此进入
CLOSE_WAIT 状态。但如果服务器端不执行 close(),就不能由
CLOSE_WAIT 迁移到 LAST_ACK,则系统中会存在很多 CLOSE_WAIT 状
态的连接。此时,可能是系统忙于处理读、写操作,而未将已收到 FIN
的连接,进行 close。此时,recv/read 已收到 FIN 的连接 socket,会返
回 0。
参考链接:TIME_WAIT 和 CLOSE_WAIT 状态区别
4、说说你知道的几种 HTTP 响应码,比如 200,302 和 404。
HTTP 响应码主要分为五种:
1XX:请求处理中,请求已被接收,正在处理。
2XX:请求成功,请求被成功处理。比如 200,OK,表示客户端请求成
功。
3XX:重定向,要完成请求必须进行进一步处理。比如 301,Moved
Permanently,永久重定向,使用域名跳转;302,Found,临时重定向,
未登录的用户访问用户中心重定向到登陆界面。
4XX:客户端错误,请求不合符。比如 400,Bad Request,客户端请求
有语法错误,不能被服务器所理解;401,Unauthrized,请求未经授权,
这个状态代码必须和 WWW-Authenticate 报头域一起使用;403,
Forbidden,服务器收到请求,但是拒绝提供服务;404,Not Found,
请求资源不存在,输入了错误的 URL。
5XX:服务器端错误,服务器不能处理合法请求。比如 500,Internal
Servel Error,服务器发生不可预期的错误;503,Server Unavailable,
服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
5、当你用浏览器打开一个链接(如:http://www.baidu.com )的时候,计
算机做了哪些工作步骤。
计算机的工作主要是将域名解析成 ip 地址。
主机解析域名的顺序依次是:
浏览器缓存。
找本机的 hosts 文件。
路由缓存。