IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 《网络是怎么连接的》读书笔记 -> 正文阅读

[网络协议]《网络是怎么连接的》读书笔记

纲要

这本书详细介绍了在浏览器输入URL到显示页面的整个过程,分章节地介绍了这个过程中从 浏览器客户端协议栈、网卡,再到集线器、交换器、路由器再到防火墙、缓存服务器,再到服务器以及返回的的整个过程。

1、解析URL

  • URL通常由协议、域名、端口、文件目录构成——http://www.lab.glasscom.com/dir/
  • 解析URL,确定web服务器文件所在的目录需要对文件进行什么样的操作?

2、生成HTTP请求

  • 解析URL后,生成对应的HTTP请求。web服务器收到HTTP请求后发送HTTP响应。

3、DNS解析

  • 操作系统的DNS客户端请求DNS服务器,对域名进行解析,得到对应的IP地址

4、委托操作系统的协议栈,TCP模块创建套接字socket

  • 浏览器把HTTP请求和web服务器的IP委托给操作系统的协议栈,向web服务器发送数据
  • 操作系统的协议栈TCP模块创建套接字socket,与服务器端的套接字socket建立连接后,就可以收发数据了。
  • TCP模块创建TCP数据包,通过三次握手和四次挥手与服务器建立TCP连接和释放连接

5、协议栈的IP模块

  • TCP模块委托IP模块,创建IP数据包

6、网卡

  • 最后将IP数据包交给网卡,转化成网线中传输的光电信号,发送出去

7、数据通过集线器、交换机、路由器在网络中传输

8、到达web服务器

  • 服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;

9、浏览器接收响应

  • 浏览器解析渲染页面:浏览器解析并渲染视图,若遇到对 js 文件、css 文件及图片等静态资源 的引用,则重复上述步骤并向服务器请求这些资源;浏览器根据其请求到的资源、数据渲染页面, 最终向用户呈现一个完整的页面。

DNS域名解析的原理

1、DNS客户端(解析器)的工作原理?

  • 为了查询域名对应的IP地址,我们的计算机中有DNS客户端,也叫作解析器。解析器其实就是位于操作系统socket库中的一个程序组件。
  • 解析器携带域名向DNS服务器发送查询请求,DNS服务器的响应消息中就含有域名对应的IP地址。
  • 解析器取出IP地址后,放入浏览器指定的内存中,下一次再向相同域名的web服务器发送请求时,就可以直接从浏览器指定内存中取出对应IP地址。

2、DNS服务器工作原理

  • DNS服务器中维护一张表,表中有记录的域名和它对应的IP信息。DNS客户端(解析器)发送查询请求后,DNS服务器只需要返回对应的IP地址就可以了。
  • 但是网络中有很多服务器,不可能域名都存放在一台DNS服务器中。DNS服务器采用分层的结构来保存域名的,因此一个域名其实是分布式地存储在多台DNS服务器上的。
  • 例如www.baidu.com,域名是通过 . 来分层的,对应着不同层级的DNS服务器,越靠右代表层级越高。低层级的DNS服务器会事先在高层级DNS服务器中注册它的IP。
  • 1、首先查询最近的一台DNS服务器,从而找到根域服务器。
  • 2、从根域服务器中查找 com域DNS服务器的IP地址,从而找到com域DNS服务器
  • 3、从com域DNS服务器中找到baidu.comDNS服务器
  • 4、以此类推,最终找到完整域名所存放的DNS服务器,取出对应IP

?域名缓存

  • DNS服务器中有缓存功能, 会把缓存之前查询过的域名。
  • 通过自顶而下来一层一层查询DNS服务器的过程中,如果中途某个DNS服务器已经缓存了该域名,可以直接返回响应,不需要继续向下一级DNS服务器查询。
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 19:15:44  更:2022-01-30 19:16:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:05:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码