当前位置:网站首页>从输入URL到页面展示这中间发生了什么?
从输入URL到页面展示这中间发生了什么?
2022-07-03 02:59:00 【夏赞恩】
1.万维网和HTTP协议
万维网WWW是一个大规模的、联机式的信息储藏所/资料空间(文字、视频、音频···),是无数个网络主站点和页面的集合。而这些资源需要统一资源定位符来进行标识。
统一资源定位符URL -> 唯一标识 -> 资源(文字、视频、音频···)
URL一般形式:<协议>://<主机>:<端口>/<路径>
用户通过点击超链接获取资源,这些资源通过超文本传输协议HTTP传送给使用者。
万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。
2. HTTP协议(无状态的)
HTTP协议定义了浏览器(万维网客户进程)怎样向WWW服务器请求WWW文档,以及服务器怎样把文档传送给浏览器。
用户浏览页面方法:
- 输入URL
- 点击超链接
浏览器具体过程:
浏览器分析URL
浏览器向DNS请求解析IP地址
DNS解析出IP地址(详见DNS系统)
浏览器与服务器建立TCP连接
浏览器发出取文件命令
服务器响应
释放TCP连接
浏览器显示(浏览器可以只下载文本部分)
HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文前不需要建立HTTP连接)
3. DNS系统
根:.
顶级域名:
- 国家顶级域名 cn,us,uk
- 通用顶级域名 com,net,org,gov
- 基础结构域名/反向域名 arpa
二级域名: - 类别域名 ac,com,edu,gov,net,org
- 行政区域名 用于我国各省、自治区、直辖市 bj,js
- 自己注册的域名(全球唯一)
三级域名:
pku.mail
四级域名…
域名服务器:
- 根域名服务器:(管理该根服务器注册的所有顶级域名):
- 顶级域名服务器(管理该顶级域名服务器注册的所有二级域名):
- 权限域名服务器(负责一个区的域名服务器):
- 本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。
域名解析过程:
- 递归查询(交给别人查询)
请求查询的主机先查本地域名服务器,本地域名服务器去查根域名服务器,根域名服务器去查顶级域名服务器,顶级域名服务器再找权限域名服务器, 找到后原路返回给请求查询的主机 - 递归与迭代相结合(有来有回)(第一步是递归查询,递给本地域名服务器去查询)
请求查询的主机先查本地域名服务器,本地域名服务器去查根域名服务器,根域名服务器告诉本地域名服务器下一步应该去查顶级域名服务器,顶级域名服务器告诉该本地域名服务器下一步应该去查权限域名服务器, 权限域名服务器把结果返回给本地域名服务器,本地域名服务器再把结果返回给请求查询的主机。
边栏推荐
- Error invalid bound statement (not found): com ruoyi. stock. mapper. StockDetailMapper. XXXX solution
- JMeter performance test JDBC request (query database to obtain database data) use "suggestions collection"
- Baidu map - surrounding search
- HTB-Devel
- I2C 子系统(三):I2C Driver
- How do you adjust the scope of activerecord Association in rails 3- How do you scope ActiveRecord associations in Rails 3?
- Source code analysis | layout file loading process
- Random shuffle note
- Add automatic model generation function to hade
- I2C subsystem (IV): I2C debug
猜你喜欢
Kubernetes family container housekeeper pod online Q & A?
ASP. Net core 6 framework unveiling example demonstration [02]: application development based on routing, MVC and grpc
Yiwen takes you to know ZigBee
I2C 子系统(三):I2C Driver
Practice of traffic recording and playback in vivo
HW-初始准备
用docker 連接mysql的過程
Pytest (6) -fixture (Firmware)
[shutter] setup of shutter development environment (supplement the latest information | the latest installation tutorial on August 25, 2021)
Baidu map - surrounding search
随机推荐
Are there any recommended term life insurance products? I want to buy a term life insurance.
模糊查詢時報錯Parameter index out of range (1 > number of parameters, which is 0)
Pytest (6) -fixture (Firmware)
How to implement append in tensor
The process of connecting MySQL with docker
Kubernetes family container housekeeper pod online Q & A?
How do you adjust the scope of activerecord Association in rails 3- How do you scope ActiveRecord associations in Rails 3?
[fluent] listview list (map method description of list set | vertical list | horizontal list | code example)
random shuffle注意
SQL Server Query spécifie la structure de la table
Error invalid bound statement (not found): com ruoyi. stock. mapper. StockDetailMapper. XXXX solution
Cancer biopsy instruments and kits - market status and future development trends
Kubernetes family container housekeeper pod online Q & A?
Source code analysis | resource loading resources
Summary of interview project technology stack
Creation and destruction of function stack frame
How to limit the size of the dictionary- How to limit the size of a dictionary?
I2C 子系统(三):I2C Driver
内存泄漏工具VLD安装及使用
How to use asp Net MVC identity 2 change password authentication- How To Change Password Validation in ASP. Net MVC Identity 2?