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

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

  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日

相关文章

  • 将JSON字符串转换成Map对象的方法

    要将JSON字符串转换成Map对象,可以使用Java中的JSON库,例如FastJson、Gson等。以下是将JSON字符串转换成Map对象的详细攻略。 准备工作 首先需要引入JSON库的依赖,以FastJson为例,Maven的依赖配置如下: <dependency> <groupId>com.alibaba</groupId…

    JavaScript 2023年5月27日
    00
  • 找到一点可怜的关于dojo资料,谢谢作者!

    感谢您对Dojo资料的关注。如果您希望获取一些关于Dojo的基础知识或者文档,可以采取以下步骤: 访问Dojo官方网站(https://dojotoolkit.org/)Dojo的官方网站包含了官方文档、示例、API等大量资料。您可以在该网站的文档资源(Documentation Resources)中寻找您需要的资料,或者在源代码库(Source Code…

    JavaScript 2023年6月11日
    00
  • JS实现选定指定HTML元素对象中指定文本内容功能示例

    实现选定指定HTML元素对象中指定文本内容功能,可以通过JS中的DOM操作实现。具体步骤如下: 获取指定HTML元素对象 通过JS的document.getElementById()或document.querySelector()方法获取到要操作的HTML元素对象。例如,如果我们要获取ID为”myDiv”的div元素对象,可以使用以下代码: var myD…

    JavaScript 2023年6月10日
    00
  • JavaScript实现的图片3D展示空间(3DRoom)

    下面是针对“JavaScript实现的图片3D展示空间(3DRoom)”的完整攻略: 简介 “JavaScript实现的图片3D展示空间(3DRoom)”是基于HTML、CSS和JavaScript技术实现的一种图片3D展示方式。它可以将图片以独特的方式展现出来,使用户有一种身临其境的感觉。本攻略将介绍如何实现这种效果。 步骤 搭建HTML骨架 要实现“Ja…

    JavaScript 2023年6月10日
    00
  • JS简单实现查看文档创建日期、修改日期和文档大小的方法示例

    下面是 “JS简单实现查看文档创建日期、修改日期和文档大小的方法示例” 的完整攻略。 1.获取文档创建日期和修改日期 要获取文档创建日期和修改日期,我们可以使用 JavaScript 中的 Date 和 Document 对象。 首先,我们需要获取文档的最后修改时间和创建时间。下面是一个简单的 JS 代码示例。 // 获取文档最后修改时间和创建时间 var …

    JavaScript 2023年5月27日
    00
  • Vue3之使用js实现动画示例解析

    下面我会详细讲解使用js实现动画的攻略,让你了解Vue3中使用js实现动画的方式。 Vue3之使用js实现动画示例解析 前言 Vue3在动画方面有了很大的改进,现在已经内置支持了Transition和Animation组件。相信这也是很多人会选择了Vue3的原因之一。本篇文章主要介绍如何使用js实现动画效果,有一个基本的了解后,再去了解Vue3内置的Tran…

    JavaScript 2023年6月10日
    00
  • AJAX简单测试代码实例

    下面我详细讲解一下“AJAX简单测试代码实例”的完整攻略。 AJAX简单测试代码实例 AJAX概述 AJAX(Asynchronous JavaScript And XML)即异步的JavaScript与XML技术。它允许web页面异步地更新部分内容,从而避免了页面全部刷新,提升了用户体验。 AJAX原理 AJAX是通过XMLHttpRequest对象实现的…

    JavaScript 2023年6月11日
    00
  • 记录-JavaScript常规加密技术

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 当今Web开发中,数据安全是一个至关重要的问题,为了确保数据的安全性,我们需要使用加密技术。JavaScript作为一种客户端编程语言,可以很好地为数据进行加密。在本篇文章中,我们将为你提供一个常规JavaScript加密大全,以及案例代码来演示如何使用它们。 Base64加密 Base64是一种…

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