计算机网络-《图解HTTP》读书笔记

📅 2026/7/28 19:24:36
计算机网络-《图解HTTP》读书笔记
《图解HTTP》读书笔记本文链接https://blog.csdn.net/qiuxuewei2012/article/details/100108137第一章了解Web及网路基础TCP/IP协议把互联网想关联的协议集合起来总称为TCP/IP协议TCP/IP 协议族按层次分为应用层传输层网络层数据链路层应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务比如FTP和DNS服务就是其中两类HTTP 协议也处于该层传输层传输层对上层应用层提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议TCPTransmission Control Protocol传输控制协议和UDPUser Data Protocol用户数据报协议网路层又名网络互联层网路层用来处理网络上流动的数据包。数据包是网络传输的最小数据单位该层规定了通过怎样的路径所谓的传输路线到达对方的计算机并把数据包传送给对方。与对方计算机之间通过多台计算机或网络设备进行传输时网络层所起的作用就是在众多的选项内选择一条传输路线。链路层又名数据链路层网络接口层用来处理连接网络的硬件部分。包括操作系统、硬件的设备驱动、NICNetwork Interface Card网络适配器即网卡及光纤等物理可见部分硬件上的范畴均在链路层的作用范围之内。TCP/IP 通信传输流利用TCP/IP 协议族进行通信时会通过分层顺序与对方进行通信发送端从应用层往下走接收端则从应用层往上走。发送端在层与层之间传输数据时没经过一层时必定会被打上一个该层所属的首部信息反之接收端在层与层之间传输数据时每经过一层时会把对应的首部消去。- 这种把数据信息包装起来的做法称为封装。确保可靠性的 TCP 协议按层次分TCP位于传输层提供可靠的字节流服务字节流为了方便传输将大块数据分割成以报文段为单位的数据包进行管理。TCP 协议为了更容易传送大数据才把数据分割而且 TCP 协议能够确认数据最终是否送达到对方。如何确保数据能到达目标TCP 协议采用了三次握手策略。用TCP协议把数据包送出去以后TCP不会对传送后的情况置之不理它一定会向对方确认是否成功送达握手过程使用了TCP的标志SYNsynchronize和 ACKacknowledgement。发送端首先先发送一个带SYN标志的数据包给对方接收端收到后回传一个带有 SYN/ACK 标志的数据包以示传达确认信息最后发送端再回传一个带 ACK 标志的数据包代表握手结束。若捂手过程中在某个阶段莫名中断TCP协议会在此以相同的顺序发送相同的数据包负责域名解析的 DNS 服务DNSDomain Name System服务是和HTTP协议一样位于应用层的协议它提供域名到IP地址之间的解析服务。浏览一个网址的全过程URLUniform Resource Locator统一资源定位符 和 URI统一资源标示符URL 是访问web页面需要输入的网页地址URI 是由某个协议方案表示的资源的定位标示符协议方案是指访问资源所使用的协议类型名称URI 用字符串标识某一互联网资源而URL表示资源的地点互联网上所处的位置可见 URL 是 URI 的子集。第二章简单的HTTP协议HTTP请求报文由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体 构成HTTP 是一种不保存状态即无状态协议。HTTP 协议自身不对请求和响应之间的通信状态进行保存。目的是为了更快的处理大量事务确保协议的可伸缩性。后来有一些场景需要保存客户端的状态比如登录状态于是引入了 Cookie 技术。有了 Cookie 再用HTTP协议通信就可以管理状态了。告知服务器意图的HTTP方法GET : 获取POST: 传输实体主体PUT : 传输文件HEAD: 获得报文首部DELETE: 删除文件OPTIONS: 询问支持的方法TRACE追踪路径CONNECT要求用隧道协议连接代理持久连接节省通信量HTTP 初始版本每进行一次HTTP通信就要断开一次TCP连接当年数据小没问题但随着HTTP的普及HTTP所传输的内容愈来愈多每次请求都会造成无谓的TCP连接建立和断开增加通信量的开销。为解决上述TCP连接的问题HTTP/1.1 和 一部分 HTTP/1.0 相处了持久连接的方法特点是只要任意一端没有明确的提出断开连接则保持TCP连接状态。管线化持久连接使得多数请求以管线化pipelining方式发送成为可能以前发送请求后需等待并受到响应才能发送下一个请求。管线化技术出现后不用等待响应亦可直接发送下一个请求。这样就能做到同时并行发送多个请求。而不需要一个接一个地等待响应了。第三章HTTP报文内的HTTP信息请求报文和响应报文的首部内容由以下数据组成请求行包含用于请求的方法请求 URI 和 HTTP 版本状态行包含响应结果的状态码原因短语和HTTP版本首部字段包含请求和响应的各种条件和属性的各类首部一般有四种首部通用首部请求首部响应首部和实体首部其他可能包含HTTP的RFC 里未定义的首部Cookie等编码提升传输速率报文是HTTP通信中的基本单位由8位字节流组成通过 HTTP 通信传输实体作为请求或响应的有效载荷数据补充项被传输其内容由实体首部和实体主体组成HTTP 报文的主体用于传输请求或响应的实体主体。通常报文主体等于实体主体。只有当传输中进行编码操作时实体主体的内容发生变化才导致它和报文主体产生差异。第四章返回结果的HTTP状态码状态码的类别类别原因短语1xxInfomational信息性状态码接收的请求正常处理2xxSuccess成功状态码请求正常处理完毕3xxRedirection重定向状态码需要进行附加操作以完成请求4xxClient Error客户端状态错误码服务器无法处理请求5xxServer Error服务器状态码服务器处理请求出错常见错误码2xx - 成功200 OK 请求被正常处理。204 No Content 请求成功但返回的响应报文中不含实体的主体部分一般只需要从客户端往服务器发送信息而对客户端不需要发送新信息内容的情况下使用。206 Partial Content : 客户端进行了范围请求服务器成功执行了这部分GET请求响应报文中包含由 Content-Range 指定范围的实体内容3xx - 重定向301 Moved Permanently 永久性重定向该状态码表示请求的资源已被分配了新的URI以后应使用资源现在所指的URI。302 Found 临时性重定向表示请求的资源已被分配了新的URI希望用户本次能使用新的URI访问303 See Other 表示由于请求对应的资源存在着另一个URI应使用GET方法定向获取请求的资源。304 Not Modified : 表示客户端发送附带条件的请求时服务端允许请求访问资源但未满足条件的情况。307 Temporary Redirect : 临时重定向4xx - 客户端错误400 Bad Request : 请求报文中存在语法错误当错误发生时需修改请求的内容后再次发送请求。401 Unauthorized 表示发送的请求需要有同感HTTP认证的认证信息。403 Forbidden 表明对请求资源的访问被服务器拒绝了。例如未获取到文件系统的访问权限404 Not Found 表明服务器上无法找到请求的资源。5xx - 服务器错误500 Internal Server Error 服务器端在执行请求时发生了错误。503 Service Unavailable 表明服务器暂时处于超负载或正在进行停机去维护现在无法处理请求。第五章与 HTTP 协作的 Web 服务器一台 Web 服务器可搭建多个独立域名的 Web 网站也可作为通信路径上的中转服务器提升传输速率代理代理是一种由转发功能的应用程序扮演了位于服务器和客户端中间人的角色接收由客户端发送的请求并转发给服务器同时也接收服务器返回的响应并转发给客户端分缓存代理缓存从源服务器获取的数据和透明代理对请求不做任何加工网关网关是转发其他服务器通信数据的服务器接收从客户端发送来的请求时它像自己拥有资源的源服务器一样对请求进行处理。工作机制和代理类似而网关能够使通信线路上的服务器提供非HTTP协议服务。利用网关能够提高通信的安全性因为可以在客户端与网关之间的通信线路上加密以确保连接的安全。隧道隧道是在相隔甚远的客户端和服务器两者之间进行中转并保持双方通信连接的应用程序。可按要求建立一条与其他服务器的通信线路届时使用 SSL 等加密手段进行通信。隧道的目的是确保客户端与服务器进行安全的通信。第六章HTTP首部HTTP 协议的请求和响应报文中必含HTTP首部首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。请求报文HTTP请求报文由方法URIHTTP版本HTTP首部字段等部分构成。响应报文HTTP响应报文由HTTP版本状态码数字和原因短语HTTP首部字段等3部分构成。HTTP首部字段首部字段由首部字段名和字段值构成中间用冒号 分割。例如HTTP首部中以 Content-Type 这个字段来表示报文主体的对象类型。通用首部字段请求首部字段响应首部字段实体首部字段其他首部字段 HTTP 首部字段是可以自行扩展的第七章确保Web安全的HTTPSHTTP 的缺点通信使用明文不加密内容可能会被窃听不验证通信方的身份因此有可能遭遇伪装无法证明报文的完整性所以有可能已遭篡改####加密处理防止被窃听通信的加密HTTP 协议中没有加密机制但可以通过和SSLSecure Socket Layer安全套接层或 TLSTransport Layer Security安全传输层协议的组合使用加密HTTP的通信内容。用SSL建立安全通信线路之后就可以在这条线路上进行HTTP通信的。与SSL组合使用的HTTP被称为 HTTPSHTTP Secure超文本传输安全协议内容的加密通过使用证书以证明通信方就是意料中的服务器。HTTP加密认证完整性保护 HTTPS通常HTTP直接和TCP通信当使用 SSL 时则演变成先和 SSL 通信再由SSL 和 TCP 通信了。SSL 是独立于HTTP的协议所以不光是HTTP协议其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。可以说 SSL 是当今世界上应用最为广泛的网络安全技术。HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制。使用SSL速度不可避免的会变慢1.通信慢 2.大量消耗CPU和内存等资源导致处理速度变慢。第八章确认访问用户身份的认证认证的几种常见方式密码只有本人才会知道的字符串信息动态令牌仅限本人持有的设备内显示的一次性密码数字证书仅限本人终端持有的信息生物认证指纹和虹膜等本人的生理信息IC卡等仅限本人持有的信息HTTP/1.1 使用的认证方式BASIC认证基本认证DIGEST认证摘要认证SSL客户端认证FormBase认证基于表单认证第九章基于HTTP的功能追加协议使用HTTP协议存在如下瓶颈一条连接上只可发送一个请求请求只能从客户端开始客户端不可以接收除响应以外的指令请求/响应首部未经压缩就发送。首部信息越多延迟越大发送冗长的首部每次互相发送相同的首部造成的浪费较多可任意选择数据压缩格式。非强制压缩发送Ajax 的解决方法AjaxAsynchronous JavaScript and XML, 异步JavaScript与XML技术 是一种有效利用JavaScript 和 DOMDocument Object Model 的操作以达到局部Web页面替换加载的异步通信手段。由于它只更新一部分界面响应中传输的数据量会因此而减少。Comet 的解决方法通常服务端接收到请求在处理完毕后就会立即返回响应但为了实现推送功能Comet会先将响应置于挂起状态当服务端有内容更新时再返回该响应。因此服务端一旦有更新就可以立即反馈给客户端。SPDY 的目标SPDY 没有完全改写HTTP协议而是再TCP/IP的应用层与传输层之间通过新加会话层的形式运作。同时考虑到安全性问题SDPY规定通信中使用SSL。SDPY的设计图示使用 SDPY后HTTP协议额外获得以下功能多路复用流通过单一的TCP连接可以无限制处理多个HTTP请求。所有请求的处理都在一条TCP连接上完成因此TCP处理效率得到提高赋予请求优先级压缩HTTP首部推送功能服务器提示功能服务器可以主动提示客户端请求所需的资源。WebSocketWeb 浏览器与 Web 服务器之间全双工通信标准。一旦Web服务器与客户端之间建立起 WebSocket 协议的通信连接之后所有的通信都依赖这个专用协议进行通信过程中可互相发送JSONXMLHTML或图片等任意格式的数据。WebSocket 通信的主要特点推送功能减少通信量第十章构建Web内容的技术HTML HyperText Markup Language超文本标记语言。CSSCascading Style Sheets层叠样式表可以指定如何展现HTML内的各种元素属于样式表标准之一。动态HTMLDynamic HTML通过调用客户端脚本语言JavaScript实现对HTML的Web页面的动态改造。利用 DOMDocument Object Model文档对象模型可指定欲发生动态变化的HTML元素。Web应用数据发布的格式及语言·XMLRSSJSON第十一章Web的攻击技术HTTP 不具备必要的安全功能SQL注入攻击对Web应用使用的数据库通过运行非法的SQL而产生的攻击。HTTP首部注入攻击攻击者通过在响应首部字段内插入换行添加任意响应首部或主体的一种攻击。设置任何Cookie信息重定向至任意URL显示任意的主体HTTP响应截断攻击目标遍历攻击对本无意公开的文件目录通过非法截断其目录路径后达成访问目的的一种攻击。因设置或设计上的缺陷引发的安全漏洞密码破解算出密码突破认证DoS攻击一种让运行中的服务呈停止状态的攻击。集中利用访问请求造成资源过载资源用尽的同时实际上服务也就呈停止状态通过攻击安全漏洞使服务停止单纯来讲就是发生大量合法请求服务器很难分辨何为正常请求何为攻击请求因此很难防止DoS攻击。多态计算机发起的DoS攻击成为 DDoS攻击Distributed Denial of Service attack。