网络基础 - 用户访问一个网站的过程的描述
网络基础 - 用户访问一个网站的过程的描述
1.当我们打开浏览器输入网址回车,到看到网页页面. 是一个非常复杂的过程,听我细细道来:
DNS解析
大家都知道,计算机之间只能通过ip相互通信,因为ip不好记,于是才使用dns服务器把域名解析为相应的额ip,这里以
解析www.baidu.com为例,当我们输入回车之后,浏览器会首先查询浏览器的缓存,这个缓存存活的时间只有一分钟,
如果没有找到,则去查询本地DNS缓存和hosts文件,如果有www.baidu.com对应的Ip,那么直接使用这个ip访问服务器.
else 这时会把请求发送给网卡配置信息里面的DNS服务器,默认有两个. 我们也称网卡配置信息里面的DNS为local DNS
, 这时候local DNS会查看自己的缓存,如果有则返回给用户,else 就会访问根域名服务器,根域名服务器一看是访问
.com的,然后告诉local DNS服务器 .com的顶级域名服务器,然后local DNS去访问.com的顶级域名服务器,.com服务
器一看是寻找 一级域名 baidu.com于是将baidu.com的ip发给local DNS服务器,然后继续往下找,直到找到
www.baidu.com的权威DNS的Address记录或者Cname,这时候local DNS服务器会把目标ip发送给客户端,并记录在缓
存当中,这样的话下次有其他用户访问www.baidu.com这个域名,loacl DNS的缓存就有记录了,客户端收到ip去访问服
务器,并且本地浏览器也会增加缓存.
理解起来就是 浏览器 -> 局部DNS服务器(DNS代理解析服务器) -> 根域名服务器 -> .xxx的顶级域名服务器 -> 一级域名
的顶级域名服务器 -> 找到域名的权威DNS的Address记录或者Cname.
HTTP交互过程
目前我们已经获取到IP了,现在封装HTTP协议报头,HTTP主要包括请求行,请求头部,空行,请求主题.
请求行包括为请求方法 资源路径(url) 协议版本,请求方法主要有POST GET HEAD PUT DELETE MOVE
具体HTTP协议的细节详情在这里:
HTTP协议:https://blog.csdn.net/Dawn_sf/article/details/79364761
HTTP HTTPS:https://blog.csdn.net/Dawn_sf/article/details/79452242
TCP交互过程
接下来,我们封装TCP报头,根据TCP报头的信息进行填充,这里TCP有很多功能,可以把协议的各个字段讲清楚:
详情请见:
TCP/IP报头:https://blog.csdn.net/Dawn_sf/article/details/74858207
TCP四大定时器:https://blog.csdn.net/Dawn_sf/article/details/75570670
TCP分片:https://blog.csdn.net/Dawn_sf/article/details/79217998
TCP粘包:https://blog.csdn.net/Dawn_sf/article/details/79231085
TCP的流量控制和拥塞控制:https://blog.csdn.net/Dawn_sf/article/details/79528731
TCP滑动窗口:https://www.cnblogs.com/luoquan/p/4886345.html
IP交互过程
接下来,我们封装IP报头,根据IP报头的信息进行填充,这里IP也有很多功能和特性,可以把协议的各个字段了解清楚:
详情请见:
TCP/IP报头:https://blog.csdn.net/Dawn_sf/article/details/74858207
子网掩码:https://blog.csdn.net/Dawn_sf/article/details/75646414
路由器的原理和作用:https://blog.csdn.net/Dawn_sf/article/details/75670149
ARP交互过程
接下来,最后一项就是把ip地址转换成一个唯一的MAC的地址,这里有一个ARP协议寻址过程,具体的细节机制:
详情请见:
ARP交互过程:https://blog.csdn.net/dream_1996/article/details/78926710
CRC校验:https://blog.csdn.net/Dawn_sf/article/details/74857406
QPS吞吐量:https://blog.csdn.net/Dawn_sf/article/details/80725020
首先发出去的数据包是三次握手的包,三次握手建立成功之后,才会进行常见的数据交互.
接下来一个HTTP请求包就这样发送给你的目标服务器了,服务器接下来会将你的数据包,按照从低至上,从
数据链路层->网络层->运输层->应用层解有效载荷,然后对数据进行处理. 这里把每一层讲清楚,面试官直接就不会
再问你网络了. 最后给完数据就四次挥手.
每一层处理数据时候,都认为自己跟对面直接通信,但是他们太嫩了,维护他们是一个非常高效 复杂的机制!!!!
网络基础 - 用户访问一个网站的过程的描述相关推荐
- 用户访问一个网站的过程描述
描述从浏览器打开 http://www.baidu.com地址回车发送请求到看到页面的过程? 打开浏览器输入网址回车,到看到页面的过程 大纲: 1.用户访问网站流程框架 2.DNS解析原理 ***** ...
- HTTP访问一个网站的过程详解
访问一个网站的过程详解 例如访问:http://www.baidu.com HTTP请求的准备 浏览器会将www.baidu.com这个域名发送给DNS服务器,让它解析成IP地址.由于HTTP是基于T ...
- 用户访问一个网站的全部过程
访问一个网站,所发生的事情 起始页 http://127.0.0.1:8000/students/ 点击 会跳转到另一个页面 通过超链接发起的一个跳转 属于get请求 服务端 路由对应 感知用户在访问 ...
- 百度上传网站服务器地址,用浏览器访问 一个网站(www.baidu.com) 的过程
用浏览器访问 一个网站(www.baidu.com) 的过程 1.先要解析出 baidu.com 对应的 ip 地址 要先使用 arp 获取默认网关的 mac 地址 组织数据发送给默认网关(ip 还是 ...
- 如果用户访问一个不存在的地址呢?
如果用户访问的地址没问题,或者服务器也能正常解析及处理当前用户的请求,那就能够返回正确的信息给到客户端.但是如果用户访问的地址有问题,或者服务端在解析用户请求以及处理请求逻辑时出现问题,怎么办呢?浏览 ...
- 访问一个网站都经过哪些步骤_轻松访问电子商务网站的10个简单步骤
访问一个网站都经过哪些步骤 As a frequent visitor to forums in which people ask for critiques of their new ecommer ...
- 如何禁止访问一个网站??
让电脑禁止访问某一网站 因为win10与XP系统都是一样的地方修改,但win10更麻烦,所以这里以win10系统为例.在C:\Windows\System32\drivers\etc目录下,有一个名字 ...
- python免费网络采集_python网络数据采集7 采集一个网站所有的外链
[python]代码库from urllib.request import urlopen from bs4 import BeautifulSoup from urllib.parse import ...
- 细说:用户访问网站流程
用户访问网站的基本流程 一次访问浏览网页的完整过程 第一步:客户端用户从浏览器输入www.baidu.com网站网址后回车,系统会查询本地hosts文件及DNS缓存信息,查找是否存在网址对应的IP解析 ...
最新文章
- python零基础怎么学-零基础的小白怎么学python?
- MySQL基本操作及乱码问题的解决方法
- 前端js自动填写 点击_爬虫自动填写学生健康打卡表
- H264和AAC合成FLV案例
- css sprite原理优缺点及使用
- 大话数据结构 -07-1 图的定义、抽象数据类型与存储结构
- 我如何开始学习Web开发
- python第一个程序--hello world
- 4.比赛F - Problem_F
- java多肽跟重载_Java多态vs重写vs重载
- 怎么在Linux中telnet服务器,Linux系统下Telnet服务器配置
- lwj_C#_作业 ListT应用
- html给图片添加边框
- AI挖掘优质淘宝买家秀 再也不用担心辣眼睛了
- 中国手机充电器行业市场供需与战略研究报告
- 华为人力资源管理经典大全
- 6、尺寸和定位的相关属性
- 小米的网络位置服务器,家庭网络小米 Mesh 组网指南|ShellClash 抛弃软路由全家开心 Netflix...
- 如何在网上获取视频地址(.mp4)
- GEE引擎设置装备物品绑定的方法