开发者社区> 上进小菜猪> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 请你谈谈网站是如何进行访问的?【web领域面试题】
+关注继续查看

@[toc]

一.题目

在这里插入图片描述
请你谈谈网站是如何进行访问的?

二.解答

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,服务器进入关闭状态,完成四波。
在这里插入图片描述

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
我两年的web开发生涯
我两年的web开发生涯 与以前的文章分享给大家自己的知识和观点不同,这篇文章更多的是写给自己的总结。 现在是 2017年10月18. 从 2015年9月 开始接触前端开发,至今两年零一个月。 从 2016年3月 入职中油瑞飞从事相关工作,至今一年零七个月。
1256 0
+关注
上进小菜猪
一切如愿吧
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Web应用系统性能优化
立即下载
Serverless 开发实战--十分钟上线一个 Web 应用
立即下载
如何利用Redisson分布式化传统Web项目
立即下载