写点什么

开源一夏 | 请你谈谈网站是如何进行访问的?【web 领域面试题】

作者:上进小菜猪
  • 2022 年 8 月 04 日
  • 本文字数:1484 字

    阅读完需:约 5 分钟

开源一夏 | 请你谈谈网站是如何进行访问的?【web领域面试题】

一.题目


请你谈谈网站是如何进行访问的?

二.解答

1.输入一个域名;回车 2.检查本机的 C:\Windows\System32\drivers\etc\hostsi 配置文件下有没有这个域名映射;①有:直接返回对应的 ip 地址,这个地址中,有我们需要访问的 wb 程序,可以直接访问。


127.0.0.1 www.shangjingzhu.com


②没有:去 DNS 服务器找,找到的话就返回,找不到就返回找不到:



3.可以配置一下环境变量(有想法的话)

三.原理(用户访问网站的流程)

3.1 访问过程

DNS 协议用于域名解析-->建立 TCP 协议的三个握手过程-->客户端发送访问网站对应页面的请求(发送 HTTP 协议请求消息)->服务器发送访问相应页面的请求消息(发送 HTTP)->TCP 协议断开的四波过程

3.2 使用 DNS 协议的域名解析

DNS 被称为域名系统,其主要功能是将域名解析为相应的 IP 地址。就是把 www.baidu.com 解析为相应的 IP 地址 111.13.101.208。拥有一个 IP 地址就等于知道百度服务器在哪里。下一步就是找到它。在 DNS 系统中,有两种查找记录的方法:递归查询和迭代查询。1、递归查询:由 DNS 客户端发起,逐级提交查询应用,直至查询终止 2、迭代查询:通常在 DNS 服务器之间完成,即本地 DNS 将查询提交给上层 DNS。上层 DNS 不会直接返回查询结果,但会告诉 DNS 在哪里查找。



在实际的 DNS 查询过程中,它包括递归查询和迭代查询。在任何搜索过程中,都会首先在每个链接中搜索缓存。如果 DNS 服务器没有缓存,它将失去其意义。记住查询顺序:主机表-->本地 DNS-->上层 DNS(包括根 DNS)

3.3 建立 TCP 协议三次握手过程

那么,经过 DNS 解析,现在我们知道了百度服务器的地址(111.13.101.208),我们可以访问它。你必须在约会前发出邀请,互联网也是如此。首先建立连接,然后才能传输数据。接下来,让我们看看百度服务器的日期。

3.3.1 TCP 协议简介

IP 协议定义了一组自己的地址规则,称为 IP 地址。它实现了路由功能,允许局域网的主机 a 向另一个局域网的主机 B 发送消息。IP 协议只是一种地址协议,不能保证数据包的完整性。如果路由器丢失数据包(例如,如果缓存已满,则新数据包将丢失),您需要找出丢失的数据包以及如何重新发送数据包。这取决于 TCP 协议。简单来说,TCP 协议的功能是确保数据通信的完整性和可靠性,并防止数据包丢失。

3.4 客户端发送访问网站相应页面的请求(发送 HTTP 协议请求消息)

建立连接后,发送请求消息以查看所需的数据。进入百度时。com,默认请求是索引。html 主页文件

3.4.1 请求消息结构:

1、请求行:①. 请求的方法(get post)②. 请求的数据信息(默认情况下请求 index.html 主页文件)③. 请求 HTTP 协议版本 TCP 协议分为长连接(HTTP1.1)和短连接(HTTP1.0)2、请求头:3、空行:4、请求主题:get 方法没有请求主题内容,post 方法将有请求主题信息

3.5 服务器发送相应访问页面的请求信息(发送 HTTP 响应消息)

1、起跑线(响应线)①. HTTP 协议版本信息②. 响应状态代码信息(请求成功状态代码 200)③. 响应状态代码描述信息 2、响应头:3、空行:4、响应正文内容:一般为 HTML、CSS、JS 等代码信息

3.6 断开 TCP 协议和 wave 四次

客户端和服务器通过三次握手建立 TCP 连接后,当数据传输完成时,必须断开 TCP 连接。对于 TCP 断开,有一个神秘的“四波”。第一波:客户端发送 fin 以关闭从客户端到服务器的数据传输,客户端进入 fin\uwait\u1 状态。第二波:服务器收到 fin 后,向客户端发送 ACK,确认序列号为收到的序列号+1(与 syn 相同,一个 fin 占用一个序列号),服务器进入 close\uwait 状态。第三波:服务器发送 fin 以关闭从服务器到客户端的数据传输,服务器进入 last\uAck 状态。第四波:客户端接收到 fin 后,客户端进入 time\Wait 状态,然后向服务器发送 ACK,确认序列号为接收序列号+1,服务器进入关闭状态,完成四波。



发布于: 刚刚阅读数: 5
用户头像

上进小菜猪 2022.03.29 加入

努力做全栈,爱好开发,开发专业户。

评论

发布
暂无评论
开源一夏 | 请你谈谈网站是如何进行访问的?【web领域面试题】_开源_上进小菜猪_InfoQ写作社区