一次完整的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连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

时间: 2024-11-17 08:28:55

一次完整的HTTP请求流程的相关文章

一次完整的浏览器请求流程(转)

一次完整的浏览器请求流程 当我们在浏览器的地址栏输入 www.linux178.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢?整个流程如下: 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js.css.图片等) --> 浏览器对页面进行渲染呈现给用户 以下就是上面过程的一一分析,我们就以Chrome浏览器为例:

一次完整的浏览器请求流程

当我们在浏览器的地址栏输入 www.linux178.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢?整个流程如下: 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js.css.图片等) --> 浏览器对页面进行渲染呈现给用户 以下就是上面过程的一一分析,我们就以Chrome浏览器为例: 域名解析 首先Chrom

完整的http请求在IIS和asp.net framework中的处理流程

完整的http请求在IIS和asp.net framework中的处理流程: HttpRequest-->inetinfo.exe-->IIS的.net扩展程序ASPNET_ISAPI.DLL-->Http Pipeline-->ASP.NET工作者进程ASPNET_WP.EXE(IIS5.0中)/w3wp.exe(IIS6.0以上版本)进行以下处理-->ISAPIRuntime-->HttpRuntime-->HttpApplication Factory--&

本页面用来演示如何通过JS SDK,创建完整的QQ登录流程,并调用openapi接口

QQ登录将用户信息存储在cookie中,命名为__qc__k ,请不要占用 __qc__k : 1) :: 在页面顶部引入JS SDK库: 将"js?"后面的appid参数(示例代码中的:100229030)替换成您自己的appid: 示例代码:<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-app

DRF之REST规范介绍及View请求流程分析

编程是数据结构和算法的结合,而在Web类型的App中,我们对于数据的操作请求是通过url来承载的,本文详细介绍了REST规范和CBV规范和CBV请求流程. 编程即数据结构和算法的结合.简单的程序可能不需要跟用户交互数据,但是现代的应用程序几乎都需要跟用户进行交互,不分应用程序类型,不管是CS型还是BS型的程序都是如此,而Python最擅长的Web App即BS型的程序,就是通过url和http来跟用户进行数据交互的,通过url和http请求,用户可以操作服务器端的程序,主要操作分为:增.删.改.

一个完整的HTTP请求过程详细

整个流程1.域名解析 —> 2.与服务器建立连接 —> 3.发起HTTP请求 —>4. 服务器响应HTTP请求,浏览器得到html代码 —> 5.浏览器解析html代码,并请求html代码中的资源(如js.css.图片) —> 6.浏览器对页面进行渲染呈现给用户 1. 域名解析 以Chrome浏览器为例: ① Chrome浏览器 会首先搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否有https://www.cnblo

HTTP请求流程你了解了么?

预备知识 前文没有描述到传输和协议直接的层级对应关系,大概补充下网络通信中数据传输对应的协议,首先了解下OSI(开放式系统互联:Open System InterConnection)七层 模式,及其对应不同层次的协议. OSI体系结构 TCP/IP相关协议结构 应用层 HTTP,Telnet,FTP等 表示层 ? 会话层 ? 传输层 TCP,UDP 网络层 IP 数据链路层 ? 物理层 ? 了解到HTTP协议是建立在TCP连接基础之上的.HTTP 是一种允许浏览器向服务器获取资源的协议,是 W

谢烟客---------Linux之DNS请求流程及资源记录定义

DNS类型/同步类型/域和区域的区别 SOA内部数据特性 DNS负载均衡(Load balance)的实现 缓存DNS服务器 缓存定义.作用.多级缓存 一次完整的解析请求 解析答案 DNS分布式特点 区域解析库/RR/RR_TYPE A记录的轮循.多主机名对同一个主机.泛域名解析 <<反反复复,多次权衡的结果 >> DNS类型.同步类型.区域和域的区别 SOA内部数据特性 DNS负载均衡(Load balance)的实现 缓存DNS服务器 缓存定义.作用.多级缓存 一次完整的解析请

完整的交互设计流程应该是怎样的?

我们常见的交互流程是这样的: 一.定性研究(Qualitative Research):针对可能使用你的产品的人,可以是问卷.访谈…… 二.确定人物角色(Persona):即产品的典型用户,可以有一种或几种.例如可以有一个人物角色叫CEO. 三.写问题脚本(Problem Scenario):罗列人物角色在使用产品时可能遇到的问题,可以整理成一个故事便于别人理解 四.写动作脚本(Action Scenario):像写故事一样,写人物角色在使用你设计好的产品时,发生的细节.注意,这个时候你的交互方