HTTP 及三次握手,四次挥手
创始人
2024-04-07 23:44:07
0

http 协议,又称为超文本传输协议,是浏览器和客户端与 服务器之间的应用层通信协议,默认端口 80。
https 默认端口 443;

http工作流程:

  1. 客户端通过URL,使用HTTP协议向所要访问的服务器发送请求

  2. 服务器根据接收到的请求,向客户端发送响应信息

  3. 客户端再通过 HTTP 协议,将 web 服务器上网站的网页代码提取,并翻译成网页

  4. 数据传输过程经历三次握手和四次挥手
    握手:

    1. 第一握手 - 客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN,此时客户端处于 SYN_SEND 状态
    2. 第二次握手 - 服务器收到客户端的 SYN 报文之后,会用自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN。同时会把客户端的 ISN+1 作为 ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_REVD 状态
    3. 第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然也是一样把服务器的 ISN+1 作为ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态,服务器收到 ACK 报文治好后,也处于 ESTABLISHED 状态,此时,双方已建立连接
      挥手:
    4. 第一次挥手 - 客户端会发送一个 FIN 报文,报文会指定一个序列号,此时客户端处于 FIN_WAIT 状态
    5. 第二次挥手 - 服务端收到 FIN 之后,会发送 ACK 报文,且把客户端得序列号值 +1 作为 ACK 报文得序列号值,表明已经收到客户端得报文了,此时客户端处于 CLOSE_WAIT 状态
    6. 第三次挥手 - 如果服务端也想断开连接了,和客户端的第一次挥手一样,发送 FIN 报文,且指定一个序列号,此时服务端处理 LAST_ACK 的状态
    7. 第四次挥手 - 客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态,需要过一会儿以确保服务端收到自己的 ACK 报文之后才会进入 CLOSE 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态

    为什么需要握手三次,又为什么需要挥手是四次

需要三次握手:为了确认双方的接收能力和发送能力都正常,如果是两次握手,则会出现 -
如果客户端发出连接请求,但因连接请求报文丢失而未收到确认,于是客户端再重传一次连接请求,后来收到了确认,建立了连接。
数据传输完毕后,就释放了连接,客户端共发出两个连接请求报文段,其中第一个丢失,第二个达到了服务端,但是第一个丢失的报文段只是再
某些时间节点延迟了,比如网络延迟。
延迟到连接释放以后的某个时间才到达服务端,此时服务端误认为客户端又发出一次新的连接请求,于是就向客户端发出确认报文段,同意建立连接,不采用三次握手,只要服务端发出确认,就建立新的连接了。
此时客户端忽略服务端发来的确认,也不发送数据,则服务端一直等待客户端发送数据,浪费资源。

需要四次挥手:因为当服务端收到客户端的 SYN 连接请求报文之后,可以直接发送 SYN+ACK报文,其中 ACK 报文是用来应答的。 SYN
报文时用来同步的,但是关闭连接时,当服务端收到 FIN报文时,很可能并不会理解关闭 SCOKET. 所以只能先回复一个 ACK
报文,告诉客户端,你发的 FIN 报文我收到了,只有等到我服务端所有的报文都发送完了,才能发送 FIN
报文,因此不能一起发送,所以需要四次挥手

当然请求也分为简单请求和复杂请求

简单请求:

  • 请求方式是 get / post / head
  • 请求头包含的字段可以有 Accept accept-Language content-Language Last-event-ID Content-Type,其中 Content-Type 的值只能是 application/x-www-form-uriencoded text/plain multipart/form-data
    复杂请求:简单请求取反
    区别----- 简单请求会多发一次请求,例如:我们向3000服务器发送‘、getData’的get 请求,浏览器会额外发送一个 options 请求,这个请求我们称为 预请求,服务器也会做出 预响应,预请求实际上是一种权限请求,只有预请求成功后,实际的请求才会执行,预请求也存在跨域的问题
    预检验请求:对于跨域的复杂请求会进行预检请求,预检请求是不会携带请求体和自定义的请求头的,因此对于处理复杂请求的再自定义中间件,遇到预检请求,我们需要直接放行,否则会出现非预期的结果,如果不跨域是没有预检请求的

相关内容

热门资讯

三门峡市2025年度市直机关公... 转自:三门峡发布三门峡市2025年度市直机关公开遴选拟任职人员公示公告根据2025年度三门峡市市直机...
进一步加强环境资源审判裁判规则...   为进一步加强环境资源审判裁判规则指引,最高人民法院近日公开发布第46批共5件生态环境保护专题指导...
纪念爱因斯坦广义相对论公开首讲... 来源:新华社 新华社柏林6月15日电(记者黄燕)当地时间14日下午至15日凌晨,柏林天文馆基金会在位...
“微专业”“小而精” 探索人才... 转自:中国发展网中国发展改革报社记者 | 荆文娜过去,人们常会问刚考上大学的学生,“学的什么专业?”...
行业大咖共议电影未来:需要重新... 上证报中国证券网讯(记者杨翔菲王彭)在短视频冲击、观众口味升级、行业成本攀升的多重挑战下,中国电影产...
国家统计局分析5月份国内消费市... 转自:北京日报客户端6月16日上午,国新办举行新闻发布会,介绍2025年5月份国民经济运行情况。记者...
最高检去年核准追诉低龄未成年人... 界面新闻记者 | 翟瑞民2025年6月16日,最高人民检察院发布《未成年人检察工作白皮书(2024)...
武威:构建全方位水安全网   西北角·中国甘肃网记者 张振国  为全面提升水环境自动监测能力,确保国家地表水水质自动站稳定高效...
最新:伊朗对以色列发动第八轮导... 据伊朗塔斯尼姆通讯社16日报道,伊朗当天凌晨对以色列发动了新一轮导弹袭击。这是伊朗伊斯兰革命卫队“真...
东软集团等成立数智康养产业新公... 人民财讯6月16日电,企查查APP显示,近日,大连数智康养产业有限公司成立,法定代表人为王星辉,经营...
国家统计局付凌晖:推动城市更新... 观点网讯:6月16日,国家统计局新闻发言人付凌晖在国新办新闻发布会上表示,下阶段将推动城市更新和危旧...
【女装】行业市场规模:2024... 转自:前瞻产业研究院行业主要上市公司:江南布衣(3306.HK)、歌力思(603808)、太平鸟(6...
2025年廊坊经洽会丨展商、好... 转自:廊坊发布编辑:董昕
正明生物:广州化妆品代加工的领... 在广州化妆品代加工这片竞争激烈的商业蓝海中,佛山正明生物科技有限公司宛如一艘稳健前行的巨轮,凭借卓越...
国家统计局:我国外贸发展综合优... 人民财讯6月16日电,国家统计局新闻发言人、国民经济综合统计司司长付凌晖在国新办新闻发布会上表示,5...
创新药BD交易再迎新进展,科创... 截至2025年6月16日 11:13,上证科创板生物医药指数下跌0.83%。成分股方面涨跌互现,悦康...
热闻|雷军“官宣”!小米YU7... 转自:大众报业·齐鲁壹点6月16日信息,雷军在微博发文表示,小米YU7将于6月底发布。还有很多重磅新...
伊朗对以色列发动第八轮导弹袭击 新华社德黑兰6月16日电(记者陈霄 沙达提)据伊朗塔斯尼姆通讯社16日报道,伊朗当天凌晨对以色列发动...
邦泽创科IPO:员工专科及以下... Hehson财经上市公司研究院|财报鹰眼预警广东邦泽创科电器股份有限公司(以下简称“邦泽创科”)拟计...
华康洁净:董秘回应股价不涨及市... 投资者提问:作为该股的股东,想了解下公司股价近来一直不涨的原因,所属板块已经涨了近20%了,但该股一...