当前位置:网站首页>请你谈谈网站是如何进行访问的?【web领域面试题】
请你谈谈网站是如何进行访问的?【web领域面试题】
2022-08-04 08:57:00 【上进小菜猪】
文章目录
一.题目

请你谈谈网站是如何进行访问的?
二.解答
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,服务器进入关闭状态,完成四波。
边栏推荐
- 解决报错: YarnScheduler: Initial job has not accepted any resources
- It is found that several WRH tables are locked, what should I do?
- ISO14443A读卡流程(作为示例参考)
- 2022-08-02 分析RK817 输出32k clock PMIC_32KOUT_WIFI给WiFi模块 clock 注册devm_clk_hw_register
- 虚拟机没有USB网卡选项怎么解决
- GBase 8c数据库集群中,怎么替换节点呢?比如设置A节点为gtm,换到B节点上。
- 大家好,请教一个问题啊,我们通过flinkcdc把Oracle数据同步到doris,目前的问题是,只
- 秒懂大模型 | 3步搞定AI写摘要
- 软件工程国考总结——判断题
- 智能健身动作识别:PP-TinyPose打造AI虚拟健身教练!
猜你喜欢

反序列化漏洞

技术实现 | 图像检索及其在高德的应用

2022-08-02 分析RK817 输出32k clock PMIC_32KOUT_WIFI给WiFi模块 clock 注册devm_clk_hw_register
![[STM32] STM32F103 series name and package, memory](/img/01/073f970c8c05ad24f976b26790ba61.png)
[STM32] STM32F103 series name and package, memory

.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)

【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解

金仓数据库 KDTS 迁移工具使用指南 (5. SHELL版使用说明)

如何快速将Zabbix5.0升级至6.0?

华为设备配置VRRP与NQA联动监视上行链路

虚拟机没有USB网卡选项怎么解决
随机推荐
发现WRH几个表被锁了,怎么办?
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
图的基本概念
LVGL的多语言转换工具--字体设置的好助手
GBase 8c数据库集群中,怎么替换节点呢?比如设置A节点为gtm,换到B节点上。
递归思想
js异步变同步、同步变异步
Linux Redis cache avalanche, breakdown, penetration
Redis分布式锁的应用
Unity3D data encryption
redis分布式锁的实现
Shared_preload_libraries cause many syntaxes not supported
从底层看 Redis 的五种数据类型
async - await
【NOI模拟赛】纸老虎博弈(博弈论SG函数,长链剖分)
【高并发基石】多线程、守护线程、线程安全、线程同步、互斥锁
BFM模型和Landmarks可视化
JNI学习1.环境配置与简单函数实现
Linux之Redis 缓存雪崩,击穿,穿透
虚拟机没有USB网卡选项怎么解决