http请求生命周期流程

http请求生命周期流程

https://mp.weixin.qq.com/s/fpA2CThk2L-YBw6z0k4rtw

HTTP 请求/相应

1、客户端连接到Web服务器

一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。

2、发送HTTP请求

通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

3、服务器接受请求并返回HTTP响应

Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

4、释放连接TCP连接

若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求。

5、客户端浏览器解析HTML内容

客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

 

在浏览器地址栏键入URL,按下回车之后会经历以下流程

1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;

2、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;

3、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;

4、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;

5、释放 TCP连接;

6、浏览器将该 html 文本并显示内容;

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112776.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 饿了么大数据平台建设

    饿了么大数据平台建设随着接入的需求方越来越多样化,对大数据的数据使用、数据存储与计算的需求也越来越多样化,同时业务飞速发展,集群的规模也急速扩大。如何在这样的场景下通过大数据平台,稳定支撑住业务的发展是一个不小的挑战。本文分享主要平台工具链,技术、选型及架构设计上的一点经验。

    2022年6月11日
    30
  • cglib动态代理实现原理_java设计模式之代理模式

    cglib动态代理实现原理_java设计模式之代理模式代理模式(ProxyPattern)是一种结构性模式。代理模式为一个对象提供了一个替身,以控制对这个对象的访问。即通过代理对象访问目标目标对象,可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。文章目录代理模式静态代理动态代理cglib代理应用

    2022年10月16日
    1
  • shell变量学习记录

    shell变量学习记录

    2022年3月11日
    28
  • jupyter和python的关系_jupyter notebook和python

    jupyter和python的关系_jupyter notebook和python这个问题参见以下文章即可,讲的很全面。核心总结Python就是原生python;anaconda类似第三方集成,方便我们管理,而且自带很多库。如果选择安装Python的话,那么还需要pipinstall一个一个安装各种库,安装起来比较痛苦,还需要考虑兼容性;PyCharm就是一个IDE的角色,和NotePad没什么本质区别。只是大家习惯上,java配合MyEclipse使用,Anaconda…

    2022年8月27日
    10
  • linux清除文件内容 >,Linux清除文件内容的几种方法[通俗易懂]

    linux清除文件内容 >,Linux清除文件内容的几种方法[通俗易懂]#清空或删除大文件内容的五种方法:#法一:通过重定向到Null来清空文件内容$>test.sh#法二:使用‘true’命令重定向来清空文件$true>test.sh#可通过下列命令来查看文件容量是否为0$du-htest.sh0test.sh#法三:使用cat/cp/dd实用工具及/dev/null设备来清空文件$cat/dev/null…

    2022年7月26日
    4
  • Win10 桌面美化[通俗易懂]

    Win10 桌面美化[通俗易懂]Win10桌面美化最近发现了几款Win10界面美化的软件,看了看别人家的Win10操作界面,瞬间觉得自己的low了,关键是赏心悦目啊!废话不多说,先看看我原来桌面和美化后的桌面对比图原始桌面美化桌面1.安装RocketDockRocketDock可以提供类似macos的操作系统图标特效,打开安装包进行安装,完毕后启动得到效果如下:可以发现切换效果与mac类似,他默认的主题是C…

    2022年4月25日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号