美文网首页
HTTP原理

HTTP原理

作者: 大盗海洲 | 来源:发表于2019-06-26 17:02 被阅读0次

HTTP 简介

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP协议所在的协议层

  HTTP是基于TCP协议之上的。在[TCP/IP协议参考模型](http://blog.csdn.net/hguisu/article/details/7249611)的各层对应的协议如下图,其中HTTP是应用层的协议。
image.png

三次握手,四次挥手


image.png

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

为什么要三次握手?

为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
谢希仁《计算机网络》书中的举例:
“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”

为什么要四次挥手?

TCP是全双工模式,这就意味着,当主机1发出FIN报文段时,只是表示主机1已经没有数据要发送了,主机1告诉主机2,它的数据已经全部发送完毕了;但是,这个时候主机1还是可以接受来自主机2的数据;当主机2返回ACK报文段时,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的;当主机2也发送了FIN报文段时,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,我也没有数据要发送,之后就会中断这次TCP连接。

TCP 与 UDP区别

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息。
优点:UDP速度快、操作简单、要求系统资源较少,由于通讯不需要连接,可以实现广播发送
缺点:UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数
据是否会正确接收,也不重复发送,不可靠。

TCP是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手
优点:TCP在数据传递时,有确认、窗口、重传、阻塞等控制机制,能保证数据正确性,较为可靠。
缺点:TCP相对于UDP速度慢一点,要求系统资源较多。

参考
HTTP协议1:工作原理
为什么TCP要三次握手和四次挥手
TCP的三次握手与四次挥手理解及面试题(很全面

相关文章

  • HTTP原理

    1.客户端与服务端建立连接 2.连接建立起来后,客户端向服务端发送请求 3,服务端接收到请求后,做出相应并返回数据...

  • HTTP原理

    (1)建立连接:接收或拒绝连接请求 (2)接收请求: 接收客户端请求报文中对某资源的一次请求的过程 (3)处理请求...

  • http 原理

    工作流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 1)首先客户机与服务器需要建立连接。只要单击某个超...

  • HTTP原理

    1. OSI 七层模型指什么 OSI(Open System Interconnection,开放系统互连)七层网...

  • HTTP原理

    HTTP 简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WW...

  • HTTP原理

    1.1 HTTP——因特网的多媒体信使 HTTP使用的是可靠的数据传输协议,可以从遍布全世界的Web服务器上将这些...

  • HTTP原理

    一、什么是HTTP 超文本传输协议,专门用于Web通信http:普通http协议,不安全,已逐步替代https:安...

  • http原理

    1.http原理 url和uri uri:全称是uniform resource Identifier 统一资源标...

  • HTTP

    http原理

  • https抓包原理

    首先关于http/https的原理,以及抓包原理,请移步这篇文章http/https的原理[https://www...

网友评论

      本文标题:HTTP原理

      本文链接:https://www.haomeiwen.com/subject/qafoqctx.html