
网络通讯
文章平均质量分 89
zkyangll
这个作者很懒,什么都没留下…
展开
-
【面试题】HTTP 协议中 URI 和 URL 的区别
回到Web上,假设所有的Html文档都有唯一的编号,记作html:xxxxx,xxxxx是一串数字,即Html文档的身份证号码,这个能唯一标识一个Html文档,那么这个号码就是一个URI。URL是以描述人的位置来唯一确定一个人的。所以不论是用定位的方式还是用编号的方式,我们都可以唯一确定一个人,都是URl的一种实现,而URL就是用定位的方式实现的URI。拿人做例子,假设这个世界上所有人的名字都不能重复,那么名字就是URI的一个实例,通过名字这个字符串就可以标识出唯一的一个人。原创 2023-12-31 22:22:49 · 817 阅读 · 0 评论 -
【网络面试(1)】浏览器如何实现生成HTTP消息
我们平时使用的浏览器有很多种,微软的edge,苹果的safari,谷歌的chrome等等,他们的功能是类似的。浏览器其实是一种综合性的客户端软件,具备访问多种服务器的能力,通常我们只要输入网址,也就是URL,就可以访问到目标网站。这里非常重要的就是URL原创 2023-12-31 22:25:11 · 1311 阅读 · 0 评论 -
【网络面试(2)】DNS原理-域名和IP地址的查询转换
从上一篇博客我们得知浏览器是如何生成了HTTP消息了,但是浏览器作为应用程序,是不具备向网络中发送请求的能力,而是需要委托给操作系统的内核协议栈来发送请求。在委托协议栈之前,浏览器还要做的一件事情就是将域名转换为IP地址。在了解这个过程之前,我们先来学习一下IP地址相关概念。原创 2023-12-31 22:26:51 · 1881 阅读 · 0 评论 -
【网络面试(3)】浏览器委托协议栈完成消息的收发
前面的博客中,提到过很多次,浏览器作为应用程序,本身是不具备向网络中发送网络请求的能力,要委托操作系统的内核协议栈来完成。协议栈再调用网卡驱动,通过网卡将请求消息发送出去,本篇博客就来探讨一下这个过程是如何实现的。虽然我们说,浏览器是委托内核协议栈完成了收发消息的动作,但实际上,他们两个并不是直接交互的,和之前DNS解析器一样,浏览器会调用操作系统Socket库中的很多程序组件依次来完成上面提到的4个阶段,所以Socket库起到非常重要的作用。原创 2023-12-31 22:28:03 · 648 阅读 · 0 评论 -
【网络面试(4)】协议栈和套接字及连接阶段的三次握手原理
一直对操作系统系统的内核协议栈理解的比较模糊,借着这一篇博客做一下简单梳理, 我觉得最直白的理解就是,内核协议栈就是操作系统中的一个网络控制软件,就是一段程序代码,它负责和网卡驱动程序交互,实现消息的发送和接收。在探究协议栈内部原理之前,先从整体上看下TCP/IP软件采用的分层结构。在这张图中,可以看到从上往下的层级结构中,上面的部分会向下面的委派工作,下面的部分实际来执行。原创 2024-01-01 00:06:20 · 848 阅读 · 0 评论 -
【网络面试(5)】收发数据及断开服务器(四次挥手)
前面了解到服务器和客户端在创建套接字,建立连接后,就可以进入到下一步,双发可以互相发送和接收数据,本篇博客就来学习一下这个过程。我们印象里,发送数据应该是我们在浏览器输入网址,敲击回车的一瞬间,发送动作就完成了,回头服务器处理完成将数据发送客户端,浏览器解析出来,这就是反过来接收的过程。原创 2024-01-01 00:08:36 · 1469 阅读 · 0 评论 -
【网络面试(6)】IP协议对网络包的转发
在前面的博客中,我们提到过,网络传输的报文是有真实的数据包和一些头部组成,目前我们了解的头部就有TCP头、IP头、MAC头,而且这三个头部信息都是在应用程序委托给协议栈之后,被写入的相关信息,这些头部都是跟网络包的转发和传递有关系的。前面我们学习了TCP协议对网络包的拆分、重发、三次握手四次挥手等机制,本篇博客来看一下,在IP协议中,如何借助于IP头部和MAC头部实现对网络报文转发的。原创 2024-01-01 00:10:36 · 1222 阅读 · 0 评论 -
【网络面试(7)】聊聊集线器、交换机和路由器
好了,到现在我们已经知道了,MAC模块经过最后一步对网络数据包的加工,添加了头部的报头、起始帧分界符合尾部的帧校验序列后,就会把包向以太网中发送了。从现在开始,数据包就正式离开计算机,进入到网络传输的步骤了。要想将网络包传输到目的地,中间过程经过集线器、交换机和路由器,也就是本篇博客要聊的三个大件,我们只需要知道他们的大体功能以及如何帮助我们转发网络包的就可以。原创 2023-12-05 12:38:44 · 1175 阅读 · 0 评论 -
【网络面试(8)】防火墙原理、正向代理、反向代理、缓存服务器、负载均衡和内容分发服务器
作为一个程序员,其实很少去了解http请求消息在到达服务器之前,所经过的众多组件的,今天借着机会聊一聊标题中提到的正向代理、反向代理、缓存服务器、负载均衡和内容分发服务器等内容。原创 2023-12-19 12:28:12 · 1731 阅读 · 0 评论 -
【网络面试(9)】Web服务器处理Http请求消息及与客户端交互的原理
这一篇,我们看一下请求消息的终点,Web服务器的程序结构。我们都知道,服务器会同时接收多个客户端的请求,做出响应并返回程序结果。但是仅一个服务器程序就处理多个客户端的请求是很难得,因此服务器会启用多个程序或者多个线程来实现这种一对多的关系。原创 2023-12-27 20:38:53 · 867 阅读 · 0 评论