前端必备HTTP技能Web前端之路让前端飞

《图解HTTP》阅读笔记

2017-09-05  本文已影响585人  yozosann

1. 网络基础TCP/IP

1.1 TCP/IP分层管理

TCP/IP按层次分为:应用层,传输层,网络层和链路层。

1.2 与HTTP关系密切的协议:IP、TCP和DNS

1.3 TCP协议:将大块数据分割以报文段为单位进行数据传输。

1.4 域名解析系统DNS

主机名/域名(www.hackr.jp)不利于计算机解析,故计算机需要一串数字(类似20x.22.3.3)来查找服务器。

1.5 各种协议与HTTP的关系

1.7 URI和URL

2. 简单的HTTP协议(1.1)

请求访问文本等资源的一端称为客户端,而提供资源的一端称为服务端。肯定从客户端开始建立通信,服务端在没有接收到请求之前不会发出响应。

2.1 HTTP是不保存状态的协议

协议本身不保留之前一切的请求和响应报文的信息,这是为了更快地处理大量食物,确保协议的可伸缩性,而特意把HTTP协议设计成如此简单。但是假如用户登陆了某界面,需要保存用户登陆过这个事实该怎么办?于是引入了Cookie技术。于是乎就可以管理状态了。

2.2 告知服务器意图的HTTP方法

2.3 持续连接节省通信量

传统每请求一次就要三次握手连接tcp四次握手断开,但是原来传输量特别小,所以影响不大,但是当下一个html可能包含n多图片,会造成过多无谓大通信量。

2.4 使用Cookie的状态管理

如果让服务器管理全部客户端状态会成为负担。故引入Cookie技术解决该矛盾:Cookie会根据从服务端发送的响应报文中一个叫做set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie的值发送出去。

服务器发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的纪录,得到最终状态信息。


3. HTTP报文内的HTTP信息

3.1 编码提升传输速率

4. 返回结果的HTTP状态码

响应的状态码可描述请求的处理结果。

5. 与HTTP协作的Web服务器

一台Web服务器可以搭建多个独立域名到Web网站,也可以作为通信路径上的中转服务器提升传输效率。

5.1 用单台虚拟主机实现多个域名

5.2 通信数据转发程序:代理、网关、隧道

这些应用程序和服务器可以将请求转发给通信线路上的下一站服务器,并且能接收从那台服务器发送的响应再转发给客户端。

5.3 保存资源的缓存

缓存指代理服务器或客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问。

6. HTTP首部

6.1 首部字段

6.2 HTTP/1.1 通用首部字段

// HTTP/1.1 
Date: Tue, 03 Jul 2012 04:40:59 GMT

// 之前
Date: Tue, 03-Jul-12 04:40:59 GMT

// asctime()
Date: Tue, Jul 03 04:40:59 2012

6.3 请求首部字段

用于客户端往服务器发送请求报文中所使用的字段,用于补充请求的附加信息,客户端信息等。

6.4 响应首部字段

服务器端向客户端返回响应报文中所使用的字段

6.4 实体首部字段

请求和响应报文实体中所使用的首部,用于补充内容的更新时间等实体相关的信息。

6.6 为Cookie服务的首部字段

将数据写入客户计算机内,接着当用户访问该Web网站时,可通过通信方式取回之前发放的Cookie。(很多标准,并非RFC6265中任何一个,而是最广泛的网景公司制定的标准上进行扩展后的产物)


6.7 其他首部字段

7. 确保Web安全的HTTPS

7.1 HTTP缺点

7.2 HTTP+加密+认证+完整性保护=HTTPS

8. 确认访问用户身份的认证

某些Web页面只想让特定的人浏览

8.1 如何认证

用户提供登陆者本人才知道的信息,登陆人本人才会有的信息:

HTTP使用的认证方式:

8.2 BASIC认证(HTTP/1.0):


缺点:

8.3 DIGEST 认证(HTTP/1.1):

同样使用质询/响应的方式,但不会像BASIC认证那样直接发送明文密码。

8.4 SSL客户端认证:

用户ID和密码只要两者内容正确,即可认证是本人的行为。但如果用户ID和密码被盗,就很可能被第三者冒充。SSL客户端认证可以避免该情况的发生。凭客户端认证,服务器可能确认访问是否来自己登录的客户端。

8.5 基于表单认证:

客户端会向服务器上的web应用程序发送登录信息,按登录信息的验证结果认证。

9. 基于HTTP的功能追加协议

功能不能满足时代发展,故出现很多基于HTTP协议的协议

9.1 消除HTTP瓶颈的SPDY

google发布SPDY目标解决HTTP的性能瓶颈,缩短Web页面的加载时间(50%)。

9.2 使用浏览器进行全双工通信WebSocket

问题在于通信若使用HTTP协议,就无法彻底解决瓶颈问题。

9.3 期盼已久的HTTP/2.0

9.4 Web服务器管理文件的WebDev

创建删除基本功能,还具有文件创建者管理,文件编辑过程中禁止其他用户内容覆盖的加锁功能。



使用HTTP/1.1的PUT方法和DELETE方法,就可以对Web服务器上的文件进行创建和删除操作,但是处于安全性考虑,一般不使用。

10. 构建Web内容的技术

10.1 Web应用

原本HTTP协议的Web机制就是对客户端发来的请求,返回事前准备好的内容。随着Web越发普及,需要引入程序创建HTML内容的做法,这种由程序创建内容的方法称为动态内容。


10.4 数据发布的格式及语言

11. Web的攻击技术

攻击大都将Web站点作为目标。

11.1 针对Web的攻击技术

HTTP协议本身不存在安全性问题。应用HTTP协议的服务器和客户端以及运行在服务器上的Web应用等资源才是攻击目标。
目前,来自互联网的攻击大都是冲着Web站点来的。

11.2 因输出值转义不完全引发的安全漏洞

11.3 因设置或设计上的缺陷引发的安全漏洞

11.4 因会话管理疏忽引发的安全漏洞

11。5 其他安全漏洞

上一篇下一篇

猜你喜欢

热点阅读