N、《图解HTTP》读书笔记 – 附录


  • 介绍

  • N1、HTTP历史协议白皮书

  • N2、HTML1.0

  • N3、NCSA Mosaic bounce page

  • N4、httpbis(Hypertext Transfer Protocol Bis)

  • N5、RSS

  • N6、XSS

  • N7、Websocket

  • N8、SPDY

  • N9、Comet

  • N10、HTTP首部介绍

  • N11、HTTP 状态代码备忘单

  • N12、负载的概念

  • N13、内容协商概念参考

  • N14、部分章节扩展阅读

    • N14、0 HTTP 协议重点特性参考(推荐)

    • N14.1、其他参考协议(原书第一章)

    • N14.2、Keberos认证(第八章未介绍)

    • N14.3、状态码[HTTP1.1](第四章补充)

  • N15、HTTPS

  • N16、优质博客或者网站

    • N16.1 [RFC自动翻译文档的页面列表](http://rfc2cn.com/index.html)

    • N16.2 [HTTP 教學](https://notfalse.net/)

    • N16.3 [Web安全学习笔记](https://Github.com/LyleMi/Learn-Web-Hacking)

介绍

虽然标题起名叫“附录”,实际上是个人搜集笔记而已。

附录部分是把之前各个章节参考的各种文章和资料汇总一遍,如果你也想阅读这本书,相信这些内容对你一定有帮助。

公众号无法点击外链,可以在后台回复“图解HTTP”,获取原书链接和这篇文章的PDF文件方便阅读。

N1、HTTP历史协议白皮书

如果要深入挖掘HTTP,那么必然绕不开这些协议原文写了啥,虽然在文章已经给出超连接,但是为了方便查找,这里还是留了一份。

  • HTTP0.9:这个就完全是草稿了。
  • HTTP/1.0:RFC1945
    • https://datatracker.ietf.org/doc/html/rfc1945
  • HTTP1.1
    • https://tools.ietf.org/html/rfc7230
    • https://tools.ietf.org/html/rfc7231
    • https://tools.ietf.org/html/rfc7232
    • https://tools.ietf.org/html/rfc7233
    • https://tools.ietf.org/html/rfc7234
    • https://tools.ietf.org/html/rfc7235
  • HTTP2.0
    • https://datatracker.ietf.org/doc/rfc7540/
  • HTTP3.0(修订中)
    • https://datatracker.ietf.org/doc/rfc9114/

这些内容的了解来源于这一篇博客:【RFC】HTTP/1.1 系列(7230 – 7235)。

注意 HTTP1.1 有些资料还在讨论 RFC2616,实际上早就已经被废弃了。

N2、HTML1.0

Hypertext Markup Language (HTML)

A Representation of Textual Information and MetaInformation for Retrieval and Interchange

http://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt

N3、NCSA Mosaic bounce page

1993 年秋天,Mosaic 的 Windows 版和 Macintosh 版面世。使用 CGI 技 术的 NCSA Web 服务器、NCSA HTTPd 1.0 也差不多是在这个时期出 现的。http://archive.ncsa.illinois.edu/mosaic.html

The NCSA HTTPd Home Page(存档)http://web.archive.org/web/20090426182129/http://hoohoo.ncsa.illinois.edu/

(原址已失效)

N4、httpbis(Hypertext Transfer Protocol Bis)

负责互联网技术标准的 IETF(Internet Engineering Task Force,互联网 工程任务组)创立 httpbis(Hypertext Transfer Protocol Bis,http://datatracker.ietf.org/wg/httpbis/)工作组,其目标是推进下一 代 HTTP——HTTP/2.0 在 2014 年 11 月实现标准化。

其实IETF是互联网发展到现在不可或缺的角色,并不由任何一个公司或者组织,而是属于公开面向全世界可以加入讨论的类似“论坛”的东西,关于HTTP的协议和规范都是由它发表,也是标准的直接制定者。地位毋庸置疑。

地址:https://datatracker.ietf.org/wg/httpbis/about/

httpbis可以看做是建立HTTP协议标准的工程组构建的一个网站。

Bis的意思叫做,“bis”来自“两次”或“重复”。它用于表示某物的第二个变体(尽管通常只有小的变体,不需要新名称),在HTTP的上下文中,HTTPbis是负责完善HTTP的工作组的名称。

其他解释:这个词(也用作前缀或后缀)bis,适用于一些现代协议标准,是古拉丁语,意为“重复”(akin to Old High German“twice”)。当协议以“bis”结尾时,这意味着它是该协议的第二个版本。另外,ter来自古拉丁语,意思是“三次”。

N5、RSS

如果你对RSS有兴趣,那么建议花点时间把下面几个文章看一遍:

  • RSS – Wikipedia

  • RSS – 维基百科,自由的百科全书 (wikipedia.org)

  • (3 封私信) 你必读的 RSS 订阅源有哪些?- 知乎 (zhihu.com)

  • 知道RSS的人越少,我就越希望它能被人知道!- 知乎 (zhihu.com)

N6、XSS

简单介绍XSS攻击以及缓解这些攻击的技术。

Types of attacks – Web security | MDN (mozilla.org)

N7、Websocket

有关Websocket的API参考部分:

WebSocket – Web API 接口参考 | MDN (mozilla.org)

以及一位阿里大佬介绍的WebSocket的内容,文章相关连接的参考资料比较有阅读价值,建议收藏之:

WebSocket协议:5分钟从入门到精通 – 程序猿小卡 – 博客园 (cnblogs.com)

N8、SPDY

这部分内容我们可以结合HTTP2.0 进行扩展,因为是已经实现的东西,可以查看相关的新特性支持。

SPDY的参考网站:http://www.chromium.org/spdy/

N9、Comet

更加详细的讲述 Comet 这一项技术。

Comet技术详解:基于HTTP长连接的Web端实时通信技术 – 知乎 (zhihu.com)

关于更多Comet的百科和历史发展可以看下面的百科,本小节的内容也包含在百科内详细介绍:

Comet (programming) – Wikipedia

N10、HTTP首部介绍

全面解读HTTP Cookie – 腾讯云开发者社区-腾讯云 (tencent.com)

N11、HTTP 状态代码备忘单

这里推荐两个网站:第一个网站:一个澳大利亚团队的自建博客,维护了有关HTTP的状态介绍,网站做的挺好看的。

网站地址:https://www.websiterating.com/zh-CN/resources/http-status-codes-cheat-sheet/#summary

图片下载地址:https://www.websiterating.com/wp-content/uploads/http-status-codes.png

N、《图解HTTP》读书笔记 - 附录
状态码

第二个网站:也是类似网站,但是个人感觉排版做的不错。

网站地址:HTTP Status Codes Glossary – WebFX

https://www.websiterating.com/zh-CN/resources/http-status-codes-cheat-sheet/#summary、

N、《图解HTTP》读书笔记 - 附录

N12、负载的概念

个人不太理解为什么新协议要把实体换成负载这个概念,于是到下面这篇文章学习了一波:

https://www.zhihu.com/question/263752229

前三个回答基本能透彻了解到HTTP协议后续的发展中为什么要替换实体的概念为负载,以及在语义定义的内容。

另外本文所有内容建议用“负载”代替“实体”的概念,不要再用“实体”去看待实体。与时俱进嘛。

N13、内容协商概念参考

MDN上面有关内容协商更为详细的解释:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Content_negotiation

N14、部分章节扩展阅读

介绍:

下面的内容是从各个章节抽取的一些零碎参考链接,并不是主要内容,可以选择阅读。

N14、0 HTTP 协议重点特性参考(推荐)

吃透HTTP协议其实只要看官方的协议原文足矣。

当然学习过程难以避免需要查资料,这里给了一些个人写文章的参考文章资料。

资料1:HTTP/2的官方介绍(官方的一手资料,定协议的作者写的,最权威的资料了)

RFC 9113 – HTTP/2 (httpwg.org)

资料2:这篇英文博客用5分钟的时间快速讲述了HTTP/3的新特性,比较有意思的文章。

Understand HTTP3 in 5 minutes

资料3:总结的非常不错的用心的博客,写作日期比较接近,个人很多内容理解也参考自这篇博客。

(最系统、最全面)这一次,彻底搞懂HTTP面试 – 掘金 (juejin.cn)

资料4:关于HTTP进化的一些历史讨论参考

https://segmentfault.com/a/1190000040631005

资料5:有关HTTP的发展史参考

https://www.cnblogs.com/songyao666/p/16065502.html

N14.1、其他参考协议(原书第一章)

RFC3986

RFC2396规范文本,目前已经废弃。请参考RFC3986

RFC3986中文对照翻译:RFC3986中文对照翻译RFC3986协议原文:https://www.rfc-editor.org/rfc/rfc3986.html

IANA – Uniform Resource Identifier (URI) SCHEMES(统一资源标识符方案)(第一章)

标准的 URI 协议方案有 30 种左右,由隶属于 国际互联网资源管理的非营利社团 ICANN(Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)的 IANA(Internet Assigned Numbers Authority,互联网号码分配局)管理 颁布。

http://www.iana.org/assignments/uri-schemes

N14.2、Keberos认证(第八章未介绍)

关于Keberos的认证参考博客,推荐阅读顺序 2、1、3:第一篇:https://www.roguelynn.com/words/explain-like-im-5-kerberos/第二篇:https://blog.csdn.net/sky_jiangcheng/article/details/81070240第三篇:https://zhuanlan.zhihu.com/p/266491528

N14.3、状态码[HTTP1.1](第四章补充)

注意本协议到本文协作为止最新协议为 HTTP3.0。但是目前还是HTTP1.1的状态码定义最为成熟,所以拿了HTTP1.1的介绍。

  • 1XX:1XX开头多为信息提示信息,几乎看不到使用场景,忽略即可。此外1XX的状态码并不会影响到SEO 优化
  • 2XX(https://datatracker.ietf.org/doc/html/rfc7231#section-6.3):HTTP状态代码是成功请求。比如HTTP 200 OK成功状态响应代码指示请求已成功。
  • 3XX(https://datatracker.ietf.org/doc/html/rfc7231#section-6.4):HTTP状态代码指示重定向。最常见的 3XX HTTP状态代码包括“ 301永久移动”,“找到302”和“ 307临时重定向” HTTP状态代码。
  • 4XX(https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1): 状态代码是客户端错误。最常见的4xx状态代码是“ 404未找到”和“ 410消失” HTTP状态代码。
  • 5XX(https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.1):HTTP状态代码是服务器错误。最常见的5xx HTTP状态代码是“ 503服务不可用”状态代码。

N15、HTTPS

下面的内容适合扩展阅读,由于本书涉及的内容比较入门,考虑读者阅读感受没有更加深入,这些资料个人都粗略或者认真看过一遍,都是不错的资料。

HTTPS – Wikipedia

Transport Layer Security – Wikipedia

看完这篇文章,我奶奶都懂了https的原理

彻底搞懂HTTPS的加密原理 – 知乎 (zhihu.com)

假如让你来设计SSL/TLS协议,你要怎么设计呢?-华为开发者论坛 (huawei.com)(优质文章)

The First Few Milliseconds of an HTTPS Connection (moserware.com)(优质文章)

TLS – SSL (Schannel SSP) Overview | Microsoft Docs

为什么 HTTPS 需要 7 次握手以及 9 倍时延 – 面向信仰编程 (draveness.me)

N16、优质博客或者网站

N16.1 RFC自动翻译文档的页面列表

针对词汇量较弱的同学可以中英对照翻译,建议英文拿IETF网站原文对照。

RFC自动翻译文档的页面列表

网站介绍:

  • 我们不保证翻译的准确性。请务必将其与英文文本进行对照阅读。
  • 在极少数情况下,部分原文会被省略,因此请务必从右上角的“Orig”链接到原文阅读原文。
  • 当一个图形或表格跨越多个页面时,或者当它们之间有空白行时,有可能翻译不准确。
  • 关于翻译,由于 RFC 版权限制,仅发布 RFC 2220 或更高版本。

N16.2 HTTP 教學

一个台湾友人的技术博客。如果想要深入HTTP继续补充和学习可以看看网站的资料,个人看过之后都十分不错。

网址:https://notfalse.net/http-series

N16.3 Web安全学习笔记

作者是一位低调的大佬,2000多Star 足以证明质量。

网址:LyleMi/Learn-Web-Hacking: Study Notes For Web Hacking / Web安全学习笔记 (github.com)


原文始发于微信公众号(懒时小窝):N、《图解HTTP》读书笔记 – 附录

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/105398.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!