一次完整的http请求过程

这篇具有很好参考价值的文章主要介绍了一次完整的http请求过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

浏览器输入一个URL回车后,会发生什么呢?

一、http请求的完整过程简述

1、域名解析:使用DNS协议进行域名解析
2、建立连接:发起TCP三次握手
3、发起http请求:建立TCP连接成功后,浏览器发起http请求
4、响应http请求:服务端响应http请求,浏览器得到返回response
5、解析response:浏览器解析response,并请求其它的资源(如js、css等)
6、浏览器渲染展示页面:浏览器根据内核对页面进行渲染展示
7、断开连接:TCP四次挥手

二、http请求过程举例详述

比如访问:www.csdn.net,具体流程:

1、通过DNS域名解析到IP

解析顺序:
1.1 浏览器搜索自己的DNS缓存
1.2 如果浏览器自身缓存里找不到,就会去搜索操作系统自身的DNS缓存
1.3 以上两个都无,则尝试从操作系统的hosts文件里面找位置一般在C:\Windows\System32\drivers\etc\hosts)
1.4 上面三个过程都没有获取到的话,就递归的去域名服务器去查找

2、通过IP使用ARP地址解析协议,找到对应的服务器

3、找到服务器后,发起TCP三次握手建立连接

在 HTTP 工作开始之前,浏览器 首先要通过网络与 服务器建立连接,该连接是通过TCP来完成的,该协议与 IP 协议共同构建 Internet,即著名的 TCP/IP 协议,因此 Internet 又被称作是TCP/IP网络。HTTP 是比 TCP 更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此,首先要建立 TCP 连接,一般TCP连接的端口号是80。建立TCP连接需要找到连接主机,所以需要先解析域名得到 IP 再找到主机进行3 次握手建立TCP连接(两台电脑之间建立一个通信桥梁)

4、建立TCP请求后,发起HTTP请求

一旦建立了 TCP 连接, 浏览器就会向 服务器发送请求命令

5、服务器响应HTTP请求,返回RESPONSE

浏览器向服务器发出请求后,服务器会对其进行应答,应答内容包括:协议的版本号和应答状态码 :HTTP/1.1 200 OK,响应头信息来记录服务器自己的数据,被请求的文档内容。最后发送一个空白行来表示头信息的发送到此为结束,接着以Content-Type响应头信息所描述的格式发送用户所请求的实际数据

6、浏览器解析response,并请求其它的资源文件(js、css等)

浏览器接收服务器应答回来的 html 代码和css,和js代码再进行页面的渲染或者接收到应答的文件进行保存等操作

7、浏览器进行渲染界面

根据解析内容渲染呈现给用户

8、四次挥手,断开tcp连接

断开不一定是在最后一步,根据是否是长连接,来决定什么时候断开

一般情况下,服务器向浏览器发送了响应数据,就可关闭 TCP 连接,但如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive,即代表长连接,可以先不断开连接。

TCP连接在发送后将仍然保持打开状态,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽

一个完整的http请求过程详细,测试,网络协议,http,网络,服务器

三、总结&扩展

一个完整的http请求过程详细,测试,网络协议,http,网络,服务器

完整的http请求包含:
浏览器发起请求-> 解析域名得到ip进行TCP连接 ->浏览器发送HTTP请求和头信息发送->服务器对浏览器进行应答,响应头信息和浏览器所需的内容-> 关闭TCP连接或保持-> 浏览器得到数据数据进行渲染

其它文档:

网络协议汇总:https://blog.csdn.net/weixin_48520816/category_11867000.html?spm=1001.2014.3001.5482
tcp三次握手、四次挥手:https://blog.csdn.net/weixin_48520816/article/details/125409213
HTTP的8种请求方式及常用请求方式的解析:https://blog.csdn.net/weixin_48520816/article/details/125274160
常见HTTP状态码汇总:https://blog.csdn.net/weixin_48520816/article/details/125414742文章来源地址https://www.toymoban.com/news/detail-695635.html

到了这里,关于一次完整的http请求过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • tcp/ip:记一次完整的数据包传输过程

    读此文章之前,先弄懂下面5个基本知识点: 封装报文是从上层到下层 (应用层 -- 传输层 -- 网络层 – 数据链路层 -- 物理层), 解封装报文是从下层到上层 。 实际例子:从PC1远程登录服务器(Server)。 数据包传输的过程中, 源IP和目标IP不会变,除非遇到NAT(SNAT或DNAT),源MAC和

    2023年04月08日
    浏览(41)
  • libcurl是一个用于进行网络通信的开源库,提供了各种功能和选项,可以用于发送和接收HTTP请求、FTP操作等

    libcurl是一个用于进行网络通信的开源库,提供了各种功能和选项,可以用于发送和接收HTTP请求、FTP操作、SMTP邮件等。它支持多种协议,包括HTTP、HTTPS、FTP、FTPS、SMTP、POP3、IMAP等。 以下是libcurl库的一些特点和功能: 跨平台:libcurl可在多个操作系统上使用,包括Windows、Lin

    2024年01月19日
    浏览(50)
  • 【Kafka】记录一次基于connect-mirror-maker做的Kafka集群迁移完整过程

    一个测试环境的kafka集群,Topic有360+,Partition有2000+,部署在虚拟机上,由于多方面原因,要求迁移至k8s容器内(全量迁移),正好可以拿来练一下手。本文主要记录对MM1和MM2的实际操作过程,以及使用过程中遇到的问题及解决方案。 source集群:kafka-2.6.0、2个broker、虚拟机

    2024年02月11日
    浏览(53)
  • 使用了Python语言和Flask框架。创建一个区块链网络,允许用户通过HTTP请求进行交互,如包括创建区块链、挖矿、验证区块链等功能。

    目录 大概来说: 二、代码注释 1.添加交易方法(add_transaction函数) 2.添加新的节点(add_node 函数) 3、替换链的方法(replace_chain函数) 总结 定义了一个名为Blockchain的类,用于构建区块链。 在Blockchain类中,定义了创建区块、获取上一个区块、工作量证明、哈希计算、验证区

    2024年04月25日
    浏览(38)
  • 如何使用Postman进行一次完整的接口测试?

    在对接口进行测试之前,得先了解一下接口的相关概念以及为什么要对接口进行测试 那么,什么是接口呢? 接口主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来通过一些特殊的规则也就是协议,来进行数据之间的

    2024年04月16日
    浏览(30)
  • 【生产问题记录】一次简单的 Http 请求异常处理 (请求的 url 太长, Nginx 直接返回 400, 导致请求服务异常)

    按照惯例直接说结论。 后台服务 A 有一个 Http 接口, 代码如下: 没错, 一个 Get 请求, 入参是一个 List 。 同时有另一个后台服务 B, 里面有段逻辑会通过 RestTemplate 调用服务 A 的这个接口, 代码如下: 在服务 B 中, 通过 batchGetUserInfo 方法请求服务 A 时, 传入了一个长度为 122 的 List

    2024年01月16日
    浏览(56)
  • 万字长文!一次性弄懂 Nginx 处理 HTTP 请求的 11 个阶段

    本文涉及到的所有配置文件我已经放在了 Nginx 配置文件,大家可以自取。 前面给大家讲了 Nginx 是如何处理 HTTP请求头部的,接下来就到了真正处理 HTTP 请求的阶段了。先看下面这张图,这张图是 Nginx 处理 HTTP 请求的示意图,虽然简单,但是却很好的说明了整个过程。 Read

    2024年04月16日
    浏览(49)
  • 一次不规范HTTP请求引发的nginx响应400问题分析与解决

    最近分析数据偶然发现nginx log中有一批用户所有的HTTP POST log上报请求均返回400,没有任何200成功记录,由于只占整体请求的不到0.5%,所以之前也一直没有触发监控报警,而且很奇怪的是只对于log上报的POST接口会存在这种特定用户全部400的情况,而对于其他接口无论POST还是

    2024年02月14日
    浏览(53)
  • HTTP基础:学习HTTP协议的基本知识,了解请求和响应的过程

    HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于传输超媒体文档(如HTML)的应用层协议,它是Web中最基本的协议。 HTTP请求和响应都是由客户端和服务器之间进行的。 一个完整的HTTP请求由以下几个部分组成: 请求行:包括请求方法(GET、POST等)、请求的URI和HTTP协

    2024年02月12日
    浏览(46)
  • 分享一次性能测试过程,5个步骤直接起飞!

    在企业中完成性能测试项目是一个挑战性强、技术含量高的任务。本文将分享一个公司完成高性能游戏系统的性能测试过程,展示 如何完成一次成功的性能测试项目 。 项目背景: 这是一家游戏公司,推出了一款新的游戏软件,系统要求高性能、高并发、高可用,为确保用户

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包