计算机网络学习笔记

计算机网络学习笔记,课程链接:

  • 《网络是怎样连接的(第2版)》,户根勤
  • 中科大老师郑烇、杨坚(教材为《计算机网络-自顶向下方法(第7版)》,机械工业出版社,2016)

1. 网络概论

  网络的运行可以聚焦到单次交互:浏览器根据域名访问数据,Web服务器将所需的数据响应返回给浏览器,并由浏览器显示在屏幕上。这种交互方式类似于人类的一问一答,但网络在其中需要从很多设备中选定正确的通信对象,并确保无丢失和损坏地传递请求和响应。

  确保这种信息传递机制需要网络控制软件,以及交换机、路由器等硬件协力合作实现。协调它们分工合作所用到的一个基本思路是,将数字信息分割呈一个一个的小块,并装入被称为""(Packet)的容器中运送,类似于邮递包裹一样,包的头部存有目的地等控制信息,便于交换机和路由器接力转运。

  第一部分笔记从这个信息传递过程依次介绍网络的工作原理。

1.1. 浏览器生成消息

1.1.1. 生成http请求

  网址 :又叫统一资源定位符 (Uniform Resource Locator,URL),常见以"http://"开头,但其实URL有很多种类,每种有不同的开头,对应着使用浏览器的不同功能,具体种类列在下图中。URL包含着指向具体数据或目标的信息,例如访问Web服务器时就包含域名,发送电子邮件时就包含收件人邮件地址等等。另外根据需要,URL还会包含用户名、密码、服务器端口号等信息。

  协议 :通信操作的规则被定义为协议(protocol)。例如浏览器解析URL并发送请求就需要对应的协议,而根据协议不同,URL的格式也不同。

  URL省略规则:

  • 若URL以 / 结尾,则表示表示路径或文件名被省略了,大多数情况下被省略的文件都被命名为 index.htmldefault.htm 之类的。
  • 有时连结尾的 / 也省略,例如 http://www.XXXX.com,就代表访问根目录下的默认文件,文件名同上。这样的文件过去被称为"主页"(Homepage),但现在主页这个词似乎含义更加广泛了。
  • 有时也会遇到 http://www.XXXX.com/aaa 这样的URL,结尾并不是一个明显指向文件夹或文件的名称,但也没有 / 作为结尾,这种情况一般来说会搜索Web服务器上名为aaa的文件,如果没有再搜索名为aaa的文件夹。

  接下来介绍一下HTTP协议的交互方式,基本思路如下图所示,首先浏览器会根据URL和其当前工作场景来生成HTTP请求消息,包含方法统一资源标识符 (Uniform Resource Identifier,URI),URI向Web服务器传递的是"对什么"的信息,方法传递的则是"怎么做"的信息。

  URI一般是一个文件名的路径,指向存放网页数据或是一个CGI(对Web服务器程序调用其他程序的规则)程序的文件,有时也可以直接用"http:"开头的URL(具体说明在后文详细展开)。而方法,也叫HTTP谓语,或是HTTP动词,包含需要Web服务器进行的动作信息,详见下表。其中GET是浏览网页的动作,POST是向网页提交信息(填问卷,提交地址等需要输入的操作),其他的动作很难找到常用的例子,但也需要理解。

  有时客户端(浏览器)生成的HTTP消息中还会包含头字段,表示附加信息,不过头字段在向Web服务器发送数据时属于可有可无的信息,因此后文再展开。

  将URL拆解为URI和方法后,需要将这些信息生成为具体的 HTTP请求消息 。其格式如下图所示。

  当Web服务器收到请求消息后,会返回响应消息 ,其基本格式和思路和请求消息相同,差别在第一行需要返回状态码 和响应短语,来表示请求的执行结果。例如在请求中找不到的文件会显示 "404 Not Found" 的信息就是状态码,状态码是一个三位数字,代表不同含义,第一位的简介如下表所示。响应短语则是一段文字,表示执行结果。

  如果需要返回的响应消息仅包含文字,那到此为止便完成了一次交互,但如果网页中还有图片等其他资源,网页响应位置会有图片文件的标签信息,当浏览器显示网页时会搜索这类标签,遇到对应标签则在屏幕上留出显示图片的空间,并再次发送图片的请求消息,直到获得对应的响应后将图片呈现在网页中。

  对图片或其他资源的每次请求都需要单独发送一个新的URL和一个新的请求。浏览器需要对一个网页的显示进行整体指挥,例如需要发送哪些请求,并如何显示在屏幕上,而对于Web服务器,则无需处理这些请求之间的关系,只需要将所有请求的处理结果返回即可。

相关推荐
bitbrowser3 小时前
giffgaff突然停用?先分清闲置停用和长期境外断开
笔记
九硕智慧建筑一体化厂家3 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
小席是个热心肠3 小时前
AI相关的自我学习
java·人工智能·学习
编程之路,妙趣横生3 小时前
IP 协议
计算机网络
AI云海3 小时前
天幕红尘笔记
笔记
何事误红尘6 小时前
Mqtt学习笔记(一):Mosquitto服务器搭建、MQTTX安装测试
学习
青山是哪个青山6 小时前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
那年窗外下的雪.7 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
蒸蒸yyyyzwd8 小时前
cpp选手备战后端学习笔记day6 秋招笔试题
笔记·学习
weixin_4462608510 小时前
AVA-Encoder:面向智能体原生视频表征学习框架
学习·音视频