`

一次完整的HTTP通信过程

阅读更多

HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:

(1)建立TCP连接

在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80

(2)Web浏览器向Web服务器发送请求命令

一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令
例如:GET/sample/hello.jsp HTTP/1.1

(3)Web浏览器发送请求头信息

浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

(4)Web服务器应答

客户机向服务器发出请求后,服务器会客户机回送应答,
HTTP/1.1 200 OK
应答的第一部分是协议的版本号和应答状态码

(5)Web服务器发送应答头信息

正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。

(6)Web服务器向浏览器发送数据

Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

(7)Web服务器关闭TCP连接

一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码
Connection:keep-alive
TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

 

分享到:
评论

相关推荐

    HTTP请求的全过程

    当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全url地址。...

    Socket 网络通信测试工具

    1.本软件为Socket编程测试工具,版本1.0 ... (6) 支持一次创建多个客户端、服务端,可用于对服务器进行压力测试。 3.如想技术合作或使用过程中遇到问题需技术支持,请加QQ:3188530079。 4.本软件支持win7/8/10等系统。

    一、浏览器渲染原理(进程、线程)http请求全过程-浏览器输入url整个过程

    1.2 浏览器发送 HTTP 请求的流程(B/S模式)(注意:http协议是基于tcp/ip协议的,http协议是应用层协议,tcp/ip协议是通信层协议,也就是tcp提供的是通信的管道。) 简要来说,很多网站第二次访问能够秒开,是因为...

    [自由软件]CHINAPGP一次密码加密程序 JCC

    在进行通信前,首先使用SecureRandom随机数生成器生成一个Key文件,key文件大小由用户A自行设定, key文件一旦生成, A将拷贝一个副本给B, 然后A用户用一次密码本加密文件,加密文件后,使用过的密码本就立即删除了,绝对...

    中通2008通信概预算编制系统v3.4.10_WinXp版_setup

    a)《通信电源设备安装工程(第一册)》 b)《有线通信设备安装工程(第二册)》 c)《无线通信设备安装工程(第三册)》 d)《通信线路工程(第四册)》 e)《通信管道工程(第五册)》 f)《中国电信FTTx等补充定额(1)...

    WebSocket的通信过程与实现方法详解

    以前客户端想知道服务端的处理进度,要不停地使用 Ajax 进行轮询,让浏览器隔个几秒就向服务器发一次请求,这对服务器压力较大。另外一种轮询就是采用 long poll 的方式,这就跟打电话差不多,没收到消息就一直不挂...

    c#编写的基于Socket的异步通信系统封装DLL--SanNiuSignal.DLL

    二:要注意属性BufferSize缓冲区大小,他是代表一次传送的字节数;如果这个文件缓冲区越大,传输速度越快;具体要设置成多少,大 家自己去调试;TCP传输的话一般可以设置成比较大,但UDP的话这个不要超过1KB;所以...

    基于TCP协议的二进制RPC通信协议的Java实现源码+项目说明.zip

    一种基于TCP协议的二进制高性能RPC通信协议实现。它以Protobuf作为基本的数据交换格式,支持完全基于POJO的发布方式,极大的简化了开发复杂性 - 完全支持POJO方式发布,使用非常简单 - 内置连接池,具备更高的性能,...

    HTTP与TCP的区别和联系.docx

    第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器...

    十分钟Lua脚本系统入门

    Lua是一种面向过程的简单轻量级的脚本语言,我编写了一些简单代码试图向C/C++程序员描述基本的Lua脚本系统使用,涉及: Lua库的使用 Lua基本语法 Lua脚本加载执行 通信:Lua脚本中调用Native函数 通信:Native代码中...

    巧解HTTP三次握手四次挥手流程(超详细).docx

    第一次握手:建立连接时,客户端发送SYN(Seq = J)包到服务器,并进入到syn_sent状态。等待服务器确认。 第二次握手:服务器收到SYN包,知道了Client端想建立连接. 它会向客户端发送SYN+ ACK包(ack =J+1 TCP 四次...

    中通2008通信概预算编制系统v3.4.10_WinXp版_setup.zip

    a)《通信电源设备安装工程(第一册)》 b)《有线通信设备安装工程(第二册)》 c)《无线通信设备安装工程(第三册)》 d)《通信线路工程(第四册)》 e)《通信管道工程(第五册)》 f)《中国电信FTTx等补充定额(1)...

    清华大学的计算机网络课件

    问题3-13:在问题3-12中,如果B发送的确认帧在传输过程中总是出错,那么A也是一直重复发送DATA0到DATA6这7个数据帧。在这种情况下,连续ARQ协议还正确吗? 问题3-14:能否归纳一下连续ARQ协议都有哪些主要功能和特别...

    TCP会话劫持

    广义上说,会话劫持就是在一次正常的通信过程中,黑客作为第三方参与到其中,或者是在数据流(例如基于TCP的会话)里注射额外的信息,或者是将双方的通信模式暗中改变,即从直接联系变成有黑客联系。

    python取代netcat过程分析

    UDP:和TCP一样,是网络传输层协议,UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据。 scoket: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个...

    用户层和传输层协议分析指导书

    因此通信的两台主机很难通过进程号找到对方,因此我们在逻辑上提出了一个Port(端口)的概念,注意,该概念在我们课程中仅限于TCP与UDP传输过程,该概念将逻辑上同一类的服务和APP归结到一个通信出口,那么通信另外...

    网络安全协议(PPT-146页).pptx

    浏览某个网站,这就是一次HTTP会话。 12 会话劫持(Session Hijack),就是在一次正常的会话过程当中,攻击者作为第三方参与到其中,他可以在正常数据包中插入恶意数据,也可以在双方的会话当中进行监听,甚至可以是...

    TCP/IP报文分析

    从http、ftp、smtp、telnel四个协议任选两个协议,描述其通信原理 2、利用ethereal捕包软件,捕获并分析数据包,说明其在通信过程中含义(至少在一个协议中说明3次握手的过程)。

    项目8-局域网服务器的搭建.pptx

    (5)重复上述过程,直至完成一次会话过程任务。 项目8-局域网服务器的搭建全文共42页,当前为第8页。 客户/服务器模型 B/S模型 Web三层体系结构,即客户端浏览器/ Web服务器/数据库存服务器(B/W/D)结构,该体系...

    SMTP&POP3协议详细&MIME规范

    在讲解发送邮件的整个通信过程前,先解释一下面几个术语。 1.2几个术语 1.2.1.邮件 邮件是一种消息的格式,由信封、首部和正文组成。 信封上最重要的是收信人的地址。邮件服务器用这个地址将邮件发送到收信人所在的...

Global site tag (gtag.js) - Google Analytics