当前位置: 首页 > news >正文

一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么? 分为4个步骤

一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么? 分为4个步骤

第一步

  1. 当发送一个 URL 请求时,不管这个 URL 是 Web 页面的 URL 还是 Web 页面上每个资源的 URL,浏览器都会开启一个线程来处理这个请求,同时在远程 DNS 服务器上启动一个 DNS 查询。这能使浏览器获得请求对应的 IP 地址。

第二步

  1. 浏览器与远程 Web 服务器通过 TCP 三次握手协商来建立一个 TCP/IP 连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。

第三步

  1. 一旦 **TCP/IP 连接建立,**浏览器会通过该连接向远程服务器发送 HTTP 的 GET 请求。远程服务器找到资源并使用 HTTP 响应返回该资源,值为 200 的 HTTP 响应状态表示一个正确的响应。

.第四步

  1. 此时,Web 服务器提供资源服务,客户端开始下载资源。

相关文章:

  • VMware虚拟设备之虚拟磁盘配置与虚拟磁盘置备类型相关介绍
  • 优秀的技术Leader
  • BOM对象有哪些,列举window对象
  • redux实现数据存取的简单写法,简单的写了一下,相信你应该可以看得懂的
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 面向对象三大基本特性 三大特性是:封装,继承,多态
  • CentOS-5.6-x86_64 下搭建DNS服务器
  • 什么是值传递和引用传递
  • nodejs的调试(node-inspector)
  • Es6中我常用的新特性总结
  • es6箭头函数和普通函数区别
  • 类加载机制
  • 简述回流和重绘,简单的表达 以及v-if和v-show的区别
  • 高性能web建站规则(CDN)
  • js事件轮询的理解,相信可以对你有所帮助
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • HTTP中的ETag在移动客户端的应用
  • LeetCode29.两数相除 JavaScript
  • node 版本过低
  • oldjun 检测网站的经验
  • python_bomb----数据类型总结
  • 好的网址,关于.net 4.0 ,vs 2010
  • 免费小说阅读小程序
  • 译自由幺半群
  • 函数计算新功能-----支持C#函数
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • #Lua:Lua调用C++生成的DLL库
  • (1)SpringCloud 整合Python
  • (4)(4.6) Triducer
  • (4)事件处理——(7)简单事件(Simple events)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (function(){})()的分步解析
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (九十四)函数和二维数组
  • (理论篇)httpmoudle和httphandler一览
  • (转)Mysql的优化设置
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @AutoConfigurationPackage的使用
  • []C/C++读取串口接收到的数据程序
  • [100天算法】-目标和(day 79)
  • [Android]How to use FFmpeg to decode Android f...
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日
  • [ios-必看] IOS调试技巧:当程序崩溃的时候怎么办 iphone IOS
  • [javascript]Tab menu实现
  • [Java基础]—JDBC
  • [LeetCode]-225. 用队列实现栈
  • [LeetCode刷题笔记]1 - 两数之和(哈希表)