《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5

这篇具有很好参考价值的文章主要介绍了《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

“Education is not the filling of a pail, but the lighting of a fire.” - William Butler Yeats

引言

计算机网络在这一学科中的重要性毋庸置疑,而黑皮书又是这一学科的教科书级经典,因此本书是计算机从业者的必读书之一。笔者用一个专栏来精炼这本书的知识,帮助想了解这方面知识的同学快速打下基础。
在该专栏中,笔者不会严格按照章节的顺序来讲述,而是会直接列出知识点并进行介绍,以帮助大家理解。
1.1-1.3节
1.4-1.7节
2.1-2,2节

正文

HTTP报文

一个典型的HTTP请求报文格式如下:
《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5
第一行称为请求行,余下的行称为首部行。

请求行

请求行包括方法字段,URL字段,HTTP版本字段

  1. 方法字段:这个报文采取的动作,包括GET、POST、HEAD、DELETE、PUT,根据英文应该也能大概猜出这些单词代表的动作。GET代表请求。
  2. URL字段:这个字段里的东西是方法字段的宾语。举例来说,当方法是GET时,URL字段中的就是请求的对象。
  3. HTTP版本字段:使用的HTTP是何版本。

首部行

  1. 第一行指明了所请求的对象所在的主机
  2. 第二行说明这条连接是一个非持续连接,即对象送到后就关闭这条连接
  3. 第三行指明用户代理,即向服务器发生这条报文的浏览器的类型
  4. 第四行指明希望服务器返回这个对象的法语版本(如果有这个版本),默认版本是英语版本

实体体

在首部行之后还可以加上一个实体体字段,如图所示:
《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5
实体体字段一般用于POST方法,存储给服务器的数据。

其他方法

HEAD方法:单纯发送一个请求报文,让服务器进行响应但不返回请求对象,常用于开发时调试跟踪
PUT方法:向服务器上传对象。
DELETE方法:删除服务器上的对象

HTTP响应报文

《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5
《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5
这个报文包括一个初始状态行,6个首部行和实体体。

实体体和初始状态行

实体体包含的是所请求的对象。
初始状态行包括协议版本字段、状态码、相应状态信息。
常见的状态码:

  1. 200 OK:一切正常
  2. 301 Moved Permanently:请求对象不在原来的URL地址,新的URL在响应报文的Location首部行中
  3. 400 Bad Request:出错了,该报文不能被服务器理解
  4. 404 Not Found:请求的对象没找到
  5. 505 HTTP Version Not Supported:顾名思义,服务器不支持报文的HTTP协议版本

首部行

我们解释请求报文中没有被提到过的部分:

  1. Date:服务器发送报文的时间
  2. Server:发送的服务器
  3. Last-Modified:所请求的对象最后更改的时间
  4. Content-Length:所请求对象的字节数
  5. Content-Type:所请求对象的类型

cookie

cookie技术用来服务器确定曾经访问过的客户。cookie技术包括四个部分:

  1. HTTP响应报文中的cookie首部行
  2. HTTP请求报文中的cookie首部行
  3. 端系统中的一个cookie文件,用来保存这个客户访问过的所有服务器为这个客户设置的cookie
  4. Web站点的后端数据库,用来保存所有客户的cookie

cookie的运行过程

《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5

  1. 客户初次访问服务器
  2. 服务器创建1678的ID作为这个客户的cookie
  3. 服务器将这个新的cookie和这个客户的信息一起存放在Web站点的后端数据库中
  4. 客户把接收到的cookie放在他的cookie文件中
  5. 客户再一次访问同一个站点时,会将这个站点为它设置的cookie附带在首部行中,由此服务器知道这是上次访问过的一个客户,可以在数据库中调用它的信息

Web缓存

Web缓存器(代理服务器)用一种巧妙的方式减少了网络时延和成本。我们用例子来说明:
《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5
有一台缓存器时,客户请求对象的步骤如下:

  1. 客户向缓存器请求对象
  2. 缓存器寻找有没有这个对象。如果有,那么用下面即将讲到的条件GET方法向服务器确认这个对象是否是最近版本并选择性修改;如果没有,那么直接向服务器请求
  3. 缓存器向客户发送该对象,同时如果是被修改或新增的对象,那么缓存器存储一个该对象的副本以便下次发送

条件GET方法

缓存器为了确认存储的对象是否是最近版本,会向服务器发送一个条件GET方法请求报文进行确认。这个报文中包含一个Last-Modified首部行:
《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5
这个首部行包含的是在缓存器中这个对象最后一次被修改的时间。服务器收到这个报文后:

  1. 服务器用这个时间和这个对象在服务器中最新被修改的时间进行比对。
  2. 如果发现缓存器中的对象已经是最新版本了,那么它返回一个不带对象的HTTP响应报文;如果不是最新版本,那么服务器将最新版本的对象存储在HTTP响应报文的实体体字段中进行发送。

用这样的方式,缓存器可以保证发送的是最新版本的对象。
《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的算法讲解!文章来源地址https://www.toymoban.com/news/detail-426784.html

到了这里,关于《计算机网络——自顶向下方法》精炼——2.2.3-2.2.5的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《计算机网络-自顶向下》04. 网络层-数据平面

    从表面上看网络层的作用:将分组从一台发送主机移动到另一台接收主机。 完成该功能需要两个重要的网络层功能: 转发:当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路。 路由选择:当分组从发送方流向接收方时,网络层必须决

    2023年04月15日
    浏览(43)
  • 《计算机网络——自顶向下方法》精炼——3.7(2)

    读书有三到:谓心到,眼到,口到。——明·朱熹 为了简化对一条TCP连接吞吐量的描述,我们首先忽略连接过程中处于慢启动状态的时间,因为这一状态时间极短,而且相比于其他状态的线性增长,该状态的指数式增长会将计算复杂化;而对于快速恢复状态,这一状态仅在网

    2024年02月07日
    浏览(43)
  • 计算机网络自顶向下WireShark实验:TCP

    计算机网络 WireShark 实验记录可供参考 1:What is the IP address and TCP port number used by the client computer (source) that is transferring the file to gaia.cs.umass.edu? To answer this question, it’s probably easiest to select an HTTP message and explore the details of the TCP packet used to carry this HTTP message, using the “details of

    2023年04月15日
    浏览(57)
  • 《计算机网络:自顶向下方法》第五章--网络层:控制平面

    控制平面作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报,而且控制网络层组件和服务如何配置和管理 传统上,控制平面功能与数据平面的转发功能在一起实现,在路由器中作为统一的整体 在网络层:数据平面中有转发

    2024年02月12日
    浏览(50)
  • 计算机网络——自顶向下方法(第四章学习记录)

    本章学习网络层:数据平面 前一章中我们学习了运输层依赖于网络层的主机到主机的通信服务,提供了各种形式的进程到进程的通信。在本章中我们将看到与运输层和应用层不同的是,在网络中的每一台主机和路由器中都有一个网络层部分。 网络层能够被分解为两个相互作

    2024年02月11日
    浏览(53)
  • 计算机网络——自顶向下方法(第二章学习记录)

    本章学习应用层 网络应用是计算机网络存在的理由。 现代网络应用程序有两种主流体系结构:客户—服务器体系结构和对等(P2P)体系结构 客户—服务器体系结构 (client-server ),在这个结构中,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求

    2024年02月09日
    浏览(42)
  • 计算机网络——自顶向下方法(第一章学习记录)

    可以从两个不同的方面来理解Internet。(它的构成。它的服务) 1.因特网的主要构成          处在因特网的边缘部分就是在因特网上的所有主机,这些主机又称为 端系统 (end system),端系统通过 因特网服务提供商 (Internet Service Provider,ISP)接入因特网,端系统通过 通信

    2024年02月10日
    浏览(41)
  • 计算机网络——自顶向下方法(第三章学习记录)

    本章学习运输层 运输层位于应用层和网络层之间,是分层的网络体系的重要部分,该层为运行在不同主机上的应用进程提供直接的通信服务起着至关重要的作用。 运输层协议为运行在不同主机上的应用进程之间提供了 逻辑通信 (logic communication)功能。从应用程序的角度看,通

    2024年02月11日
    浏览(40)
  • 《计算机网络--自顶向下方法》第四章--网络层:数据平面

    每台路由器的数据平面的主要作用是从其输入链路向其输出链路转发数据报 ;控制平面的主要作用是协调这些本地路由器转发动作,使得数据报沿着源和目的地主机之间的路由器路径进行端到端传送 路由器具有截断的协议栈,即没有网络层之上的部分,因为 路由器不运行应

    2024年02月12日
    浏览(43)
  • 《计算机网络——自顶向下方法》精炼——1.4到1.7

    三更灯火五更鸡,努力学习永不止。无惧困难与挑战,砥砺前行向成功。 计算机网络在这一学科中的重要性毋庸置疑,而黑皮书又是这一学科的教科书级经典,因此本书是计算机从业者的必读书之一。笔者用一个专栏来精炼这本书的知识,帮助想了解这方面知识的同学快速打

    2023年04月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包