当前位置:网站首页>从输入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查询请求时,这个查询请求报文就发给本地域名服务器。
域名解析过程:
- 递归查询(交给别人查询)
请求查询的主机先查本地域名服务器,本地域名服务器去查根域名服务器,根域名服务器去查顶级域名服务器,顶级域名服务器再找权限域名服务器, 找到后原路返回给请求查询的主机 - 递归与迭代相结合(有来有回)(第一步是递归查询,递给本地域名服务器去查询)
请求查询的主机先查本地域名服务器,本地域名服务器去查根域名服务器,根域名服务器告诉本地域名服务器下一步应该去查顶级域名服务器,顶级域名服务器告诉该本地域名服务器下一步应该去查权限域名服务器, 权限域名服务器把结果返回给本地域名服务器,本地域名服务器再把结果返回给请求查询的主机。
边栏推荐
- leetcode540
- Force deduction ----- the minimum path cost in the grid
- 【Flutter】shared_ Preferences local storage (introduction | install the shared_preferences plug-in | use the shared_preferences process)
- Introduction to cron expression
- Can netstat still play like this?
- HTB-Devel
- Wechat - developed by wechat official account Net core access
- [fluent] futurebuilder asynchronous programming (futurebuilder construction method | asyncsnapshot asynchronous calculation)
- [shutter] setup of shutter development environment (supplement the latest information | the latest installation tutorial on August 25, 2021)
- docker安装redis
猜你喜欢

Privatization lightweight continuous integration deployment scheme -- 01 environment configuration (Part 2)

Super easy to use logzero

一文带你了解 ZigBee

I2C subsystem (IV): I2C debug

Pytest (6) -fixture (Firmware)

力扣------网格中的最小路径代价

Opengauss database development and debugging tool guide

Kubernetes cluster log and efk architecture log scheme

Segmentation fault occurs during VFORK execution
![[shutter] monitor the transparency gradient of the scrolling action control component (remove the blank of the top status bar | frame layout component | transparency component | monitor the scrolling](/img/c3/b9a614001f80345a5c1cb3c68ab27c.jpg)
[shutter] monitor the transparency gradient of the scrolling action control component (remove the blank of the top status bar | frame layout component | transparency component | monitor the scrolling
随机推荐
用docker 连接mysql的过程
Le processus de connexion mysql avec docker
Classes and objects - initialization and cleanup of objects - constructor call rules
Deep reinforcement learning for intelligent transportation systems: a survey paper reading notes
Last update time of all sqlserver tables
docker安装mysql
How to use asp Net MVC identity 2 change password authentication- How To Change Password Validation in ASP. Net MVC Identity 2?
SQL server queries the table structure of the specified table
Unity3d human skin real time rendering real simulated human skin real time rendering "suggestions collection"
分布式事务
leetcode540
Process the dataset and use labelencoder to convert all IDs to start from 0
Apple releases MacOS 11.6.4 update: mainly security fixes
Three.js本地环境搭建
Check log4j problems using stain analysis
Yiwen takes you to know ZigBee
How do you adjust the scope of activerecord Association in rails 3- How do you scope ActiveRecord associations in Rails 3?
Summary of interview project technology stack
Tensorflow to pytorch notes; tf. gather_ Nd (x, y) to pytorch
[leectode 2022.2.15] lucky numbers in the matrix