输入一个网址的时候,后台到底发生了一件件什么样的事

yizhihongxing

当用户在浏览器中输入一个网址时,后台会经历如下过程:

  1. DNS解析

首先,浏览器需要将用户输入的网址转化为一个IP地址,这个过程称为DNS解析。浏览器将会向本地DNS服务器发出请求,本地DNS服务器可能会向上级DNS服务器继续发出请求,直到最终找到负责该域名的DNS服务器,并从中获取对应IP地址。如果本地DNS服务器中不存在对应域名的IP地址,将会继续向上级DNS服务器发送请求。

示例:当用户输入www.baidu.com时,浏览器将会向本地DNS服务器发送请求,如果本地DNS服务器中不存在www.baidu.com对应的IP地址,就会向上级DNS服务器发送请求。最终经过多次请求后,将会得到一个IP地址,如220.181.57.217。

  1. TCP连接

在得到IP地址后,浏览器需要与Web服务器建立TCP连接。这个过程称为“三次握手”,即:

  • 浏览器向Web服务器发送一条带SYN标志的请求报文,表示请求连接;
  • Web服务器回应带SYN/ACK标志的应答报文,表示连接请求被接受;
  • 浏览器回应一条带ACK标志的请求报文,表示连接建立成功。

示例:浏览器向IP地址为220.181.57.217的Web服务器发送请求,经过三次握手后,连接建立成功。

  1. 发送HTTP请求

一旦TCP连接建立成功,浏览器将会向Web服务器发送HTTP请求。HTTP请求由请求头和请求体两部分组成,请求头中包含了请求类型、URL、协议版本等信息,请求体中包含了表单数据、查询参数等具体信息。

示例:浏览器向Web服务器发送一条HTTP GET请求,请求URL为http://www.baidu.com/。

  1. 服务器处理请求并响应

Web服务器在接收到请求后,会根据请求头中的信息进行处理。服务器可以直接从文件系统中取出文件响应,或者将请求交给一个处理程序进行处理后再响应。服务器响应一般由响应头和响应体两部分组成,响应头中包含了状态码、文档类型等信息,响应体中包含了具体的响应文本。

示例:Web服务器接收到浏览器的GET请求,查找网站目录中的对应文件,将文件内容作为HTTP response返回给浏览器。

  1. 渲染页面

浏览器在接收到Web服务器的响应后,会将响应文本解析为DOM树,并从中构建渲染树,之后将渲染树中的节点进行布局,并将它们渲染到浏览器窗口中。

示例:浏览器将Web服务器响应的HTML文档解析为DOM树,并对DOM树进行渲染,最终呈现出完整的网页。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:输入一个网址的时候,后台到底发生了一件件什么样的事 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JS正则表达式验证端口范围(0-65535)

    下面是JS正则表达式验证端口范围的攻略: 题目描述 要求用JS正则表达式验证给定的端口范围是否符合规范,即端口号范围应该为0-65535。 解法 我们可以使用正则表达式来判断给定的端口范围是否符合要求。 正则表达式的规则如下: 端口号的范围为0-65535; 0开头的数字只能为0; 1-9开头的数字可以是单个1-9,两位数字或三位数字; 数字不能有前导0。 …

    JavaScript 2023年6月10日
    00
  • 关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案

    下面是关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案的完整攻略。 问题描述 在使用JS Lodop打印插件打印Bootstrap页面时,样式会出现错乱,包括字体大小、行高等样式不一致,导致打印效果不符合预期。 解决方案 经过实践和总结,我们得出以下两种解决方案,供大家参考。 解决方案一:使用样式重置 通过在打印页面中添加以下代码来重…

    JavaScript 2023年6月11日
    00
  • Discuz .net版本中的短消息系统

    Discuz .net是一款知名的论坛程序,其短消息系统是其重要的功能之一。本文将详细讲解Discuz .net版本中的短消息系统,包括如何创建、管理和使用短消息系统。 创建和启用短消息系统 在Discuz .net中,默认情况下是已经启用了短消息系统的,而且用户可以在论坛的任何页面中通过左上角的“短消息”链接进入短消息系统。如果管理员需要修改短消息系统的设…

    JavaScript 2023年6月11日
    00
  • JavaScript实现短信倒计时60s

    当需要在网页中添加短信验证码的时候,我们通常需要一个倒计时的功能,限制60秒内只允许重新获取一次验证码。下面是JavaScript实现短信倒计时60s的攻略。 1. 倒计时基础框架 我们先来搭建倒计时的基本框架,HTML代码如下: <button id="btn">获取验证码</button> 需要注意的是,这里的…

    JavaScript 2023年5月27日
    00
  • 大型JavaScript应用程序架构设计模式

    当我们构建大型JavaScript应用程序时,需要考虑一些设计模式,以确保代码易于维护和扩展。以下是大型JavaScript应用程序架构设计模式的完整攻略。 MVC设计模式 MVC设计模式由模型、视图和控制器三个组件组成。模型层包含应用程序的数据和业务逻辑,视图层负责呈现数据和用户界面,控制器连接模型层和视图层,处理用户交互。 一个MVC应用程序的示例是购物…

    JavaScript 2023年5月27日
    00
  • ASP的Error对象知识简析

    ASP的Error对象知识简析 在ASP开发中,如果出现错误,ASP会自动创建一个名为Error的对象,来存储出错信息。Error对象的相关属性和方法可以方便我们查找和处理错误信息。以下是对ASP Error对象的一些简单分析。 Error对象的属性 Error对象包含以下常用属性: ASPError.ASPCode 返回的是一个数字值,表示出错的标准代码。…

    JavaScript 2023年6月11日
    00
  • js实现touch移动触屏滑动事件

    首先,在JS中实现touch移动事件需要以下步骤: 1.监听touch事件,获取移动的距离及方向2.根据移动的距离及方向判断滑动操作:是垂直滑动还是水平滑动3.根据滑动的距离改变页面元素的位置4.结束滑动后执行相应的操作,比如改变元素的样式或者执行相关动画 下面是JS实现touch移动事件的完整示例: <!DOCTYPE html> <ht…

    JavaScript 2023年6月11日
    00
  • js 中 document.createEvent的用法

    下面是关于”js 中 document.createEvent的用法”的攻略: 什么是document.createEvent? document.createEvent()是 JavaScript 中的一个方法,它可以用于创建一个自定义事件对象。在 DOM 中,事件是与元素关联的行为,例如点击、滚动、鼠标移动等等。 以下是 document.createE…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部