图解HTTP

 实习+工作两年,HTTP在我的头脑中还一直是个“飘忽”的概念。从微商城开始接触JSON,对HTTP的概念只不过是“发起请求”四个字。如果将HTTP比作一个植物细胞,我可能仅仅观察到最外层的细胞壁。

 前段时间,前端组在考虑网站SEO优化,于是了解服务器渲染方面的知识提上日程。在学习nodejs的时候,发现对HTTP没有足够的理解成为了继续学习的瓶颈,于是开始了《图解HTTP》的阅读和学习。

 对我来说,这本书干货很多,第一章就将TCP/IP协议族层次描述得十分形象具体,在应用层发起http请求后接着通过DNS协议开始解析域名→在传输层进行数据分割TCP协议确保数据能够准确传输(三次握手)→在网络层通过ARP协议解析IP地址查出相应的MAC地址,然后在路由器间中转一步步将数据传送到指定服务器。一个请求的发起便触发了那么多步骤,脑海中有了初步的流程图。

 然后介绍了http的协议结构,客户端从http发起请求实际上是向服务器端发送了一封请求报文,请求报文=请求方法+请求URI+协议版本+首部字段(重点)+内容实体,相应报文=协议版本+状态吗+提示短语+相应首部字段+主体。这里还有一个收获是对cookie的理解。cookie是通过相应报文中的set-cookie字段来让客户端保存cookie,在下次发送时会在请求首部中直接添加保存的cookie信息进行请求。

 第三章关键词是报文主体与实体主体。报文主体用来传输编码后或未编码的实体主体,所以通常报文主体=实体主体。第四章介绍了响应报文中不同的状态码代表的含义,状态码能够帮助我了解一个请求的处理情况。主要来说,3XX重定向状态码,4XX客户端错误,5XX服务器端错误。

 接着我了解了几个平时常听到的配合服务器使用的用于转发数据的应用(代理,网关,隧道)。通过代理服务器转发数据时,会加入via首部信息。为什么要使用代理服务器呢?因为要利用缓存技术来节省网络宽带流量(当然还有本地浏览器缓存),或者针对特定网站获取访问日志。那怎样节省流量呢?将资源副本保存在代理服务器上,当再次接收请求响应时就不用从源服务器获取了。网关和代理类似,但是网关可以连接数据库查询数据。在客户端与网关之间加密可以加强通信安全。隧道可以建立与其他服务器的通信线路,总的来说也是为了建立安全的通信线路。

 第六章讲解了请求报文和相应报文中各种各样的首部,只识记了几个常用的,多了记不住也费脑。从第七章开始讲述网络安全方面的基本知识。HTTP+加密+认证+完整性保护=HTTPS。公钥私钥那块儿需要细细体会。

 然后认识了几种认证方式。BASIC(安全性不高,易被解码):BASIC64编码处理用户名密码组成的字符串。将编码后的字符串写入首部字段Authorization 中。DIGEST:客户端发送认证要求→服务端发送质询→客户端接收由质询码计算出的响应码。SSL :客户端安装证书。服务器端在接收到认证请求后,发送Certificate Request 报文,要求客户端提供证书。客户端将证书信息通过Certificate Cline报文发送给服务器后,服务器端领取证书内公开密钥,解密后开始通信(有点绕)。表单认证:session管理,将用户名密码放入报文实体部分,服务器端发送回sid。SSL+表单认证=双因素认证。

 第九章归纳为关于http的优化。Ajax异步加载方法,XHR的API,JS直接调用。Comet,服务器一旦更新,向客户端发送响应。Ajax和Comet没有解决http瓶颈。所以WebSocket 登场,一次握手,“永久”连接,js可直接调用WebSocket的API。第十章web的构建技术就是平时的前端工作内容(html,css,json等等),通过学习了前面的一系列知识,再反观这一章节的内容,有一种很明朗的感觉,这些东西在web网络中的作用十分清晰了。

 最后一个章节讲解了各种网络攻击。看完这章吓到后退,如果有人存心想要窃取信息,方法很多,防不胜防。所以平时要注意保护好自己的账号和密码,且密码一定要有足够高的安全等级。别点不相关的链接和广告,不然说不定你就在不知不觉中被动攻击了。

此书的优势是将一些抽象的协议或者概念通过图像和较为直白的语言描述,让我扫除了很多http所涉及的网络知识的盲点。最后,感谢搜索升以书假余。存档了电子版一份,今后还可细细回看。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值