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)
上一篇 2021年10月30日 下午2:00
下一篇 2021年10月30日 下午3:00


相关推荐

  • accessors 作用_@Accessors 的三种用法的解释

    accessors 作用_@Accessors 的三种用法的解释AccessorsAcc 的中文含义是存取器 Accessors 用于配置 getter 和 setter 方法的生成结果 下面介绍三个属性 fluentfluent 的中文含义是流畅的 设置为 true 则 getter 和 setter 方法的方法名都是基础属性名 且 setter 方法返回当前对象 如下 Data Accessors fluent true publicclassU priv

    2026年3月17日
    2
  • LinkedHashMap 详解

    LinkedHashMap 详解一 概述概括的说 LinkedHashMa 是一个关联数组 哈希表 它是线程不安全的 允许 key 为 null value 为 null 它继承自 HashMap 实现了 Map K V 接口 其内部还维护了一个双向链表 在每次插入数据 或者访问 修改数据时 会增加节点 或调整链表的节点顺序 以决定迭代时输出的顺序 默认情况 遍历时的顺序是按照插入节点的顺序 这也是其与 HashMap 最 K V

    2026年3月18日
    2
  • 什么叫侧面指纹识别_又见侧面指纹,四大指纹识别技术,你会如何选择?「建议收藏」

    什么叫侧面指纹识别_又见侧面指纹,四大指纹识别技术,你会如何选择?「建议收藏」原标题:又见侧面指纹,四大指纹识别技术,你会如何选择?1.正面实体指纹系统关于最早搭载正面指纹识别技术的手机,估计大家都会说是苹果公司在2013年9月发布的iPhone5s。其实最早的应该是摩托罗拉公司。只是苹果公司的影响比较大,在iPhone5s之后,将这项技术推向了颠峰,引领了潮流。之后各大手机厂商也纷纷加入了这个行列,越来越多的指纹识别手机面世。得益于苹果手机传统的HOME键,刚好可…

    2022年6月29日
    34
  • hibernate之关于使用连接表实现多对一关联映射

    hibernate之关于使用连接表实现多对一关联映射

    2021年12月16日
    49
  • python问题 Traceback (most recent call last)

    python问题 Traceback (most recent call last)python运行问题Traceback(mostrecentcalllast)出现报错traceback(mostrecentcalllast)…………importError:Nomodulenamedlxml解决方案一般是打开cmd执行命令pipinstallxxxx(缺失的包,例如lxml)当然也有例外的,具体可参考下面的问题及其解决…

    2022年6月3日
    620
  • python numpy.zeros()函数的用法

    python numpy.zeros()函数的用法numpy zeros shape dtype float order C 返回给定形状和类型的新数组 用 0 填充 参数 shape int 或 int 的元组 nbsp 新阵列的形状 例如 2 3 或 2 nbsp dtype 数据类型 可选 nbsp 数组的所需数据类型 例如 numpy int8 默认是 numpy float64 nbsp

    2026年3月17日
    2

发表回复

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

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