当前位置:网站首页>开源一夏 | 请你谈谈网站是如何进行访问的?【web领域面试题】
开源一夏 | 请你谈谈网站是如何进行访问的?【web领域面试题】
2022-08-04 15:54:00 【InfoQ】
一.题目

请你谈谈网站是如何进行访问的?
二.解答
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,服务器进入关闭状态,完成四波。

边栏推荐
- For循环控制
- 张乐:研发效能的黄金三角及需求与敏捷协作领域的实践
- JVM Tuning-GC Fundamentals and Tuning Key Analysis
- 张乐:研发效能的黄金三角及需求与敏捷协作领域的实践|直播回顾
- 5 基本引用类型
- GPS satellite synchronization clock, NTP network synchronization clock, Beidou clock server (Jingzhun)
- Redis的主从复制和集群
- 荐书 | 《大脑的奥秘:人人要懂的脑科学》:大脑里面有什么
- DocuWare Platform - Content Services and Workflow Automation Platform for Document Management (Part 1)
- 保证通信的机制有哪些
猜你喜欢
随机推荐
【伸手党福利】投影仪初学者入门——投影亮度及幕布选择——从入门到精通
如何实时监控销售数据?销售看板来帮你!
攻防视角下,初创企业安全实战经验分享
Roslyn 在 msbuild 的 target 判断文件存在
吴恩达机器学习[11]-机器学习性能评估、机器学习诊断
js判断一个对象是否在一个对象数组中
DocuWare平台——用于文档管理的内容服务和工作流自动化的平台(上)
云存储硬核技术内幕——(9) 相见时难别亦难
可视化大屏丑?这篇文章教你如何做美观大屏!
07-输入输出系统
NUS颜水成等发布首篇《深度长尾学习》综述
Go 言 Go 语,一文看懂 Go 语言文件操作
Redis的主从复制和集群
Roslyn 在多开发框架让 msbuild 的 Target 仅运行一次
MySQL当前读、快照读、MVCC
Request method ‘POST‘ not supported。 Failed to load resource: net::ERR_FAILED
To ensure that the communication mechanism
Matlab计算随模拟时间变化的热导率
不需要服务器,教你仅用30行代码搞定实时健康码识别
荐书 | 《大脑的奥秘:人人要懂的脑科学》:大脑里面有什么