计算机网络学习笔记

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

  • 《网络是怎样连接的(第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服务器,则无需处理这些请求之间的关系,只需要将所有请求的处理结果返回即可。

相关推荐
诗句藏于尽头4 分钟前
Ai-3D音乐播放器-Mineradio -VibeCoding大赏-新增歌词字体自定义上传功能(个人学习)
学习
TE-茶叶蛋1 小时前
Node.js-Phase 1 学习总结:CLI 文件管理系统
学习·node.js
Waay10 小时前
面试口述版:个人对 Prometheus 完整理解
运维·学习·云原生·面试·职场和发展·kubernetes·prometheus
一楼的猫12 小时前
AI写作合规技术方案:平台检测机制分析与规避策略
人工智能·学习·机器学习·ai写作
四月天4313 小时前
web安全-SSTI(服务器模板注入)
笔记·学习·web安全·网络安全
网络与设备以及操作系统学习使用者14 小时前
相对论核心原理详解
学习·深度优先
疯狂打码的少年14 小时前
【操作系统】虚拟存储管理(局部性原理、缺页中断)
笔记
NULL指向我15 小时前
TMS320F28379D笔记5:CAN通信多邮箱配置
笔记
aaaameliaaa16 小时前
进制练习题【找出只出现一次的数字、交换两个变量(不创建临时变量)、统计二进制中1的个数、打印整数二进制的奇数位和偶数位、求两个数二进制中不同位的个数】
c语言·数据结构·笔记·算法
吃好睡好便好17 小时前
泰戈尔的诗歌7
学习·生活