### 基于HTTP1.1标准
1. 1997年公布的HTTP1.1标准,到现在已经使用了22年
HTTP方法
HTTP协议格式
报文结构
首部字段
状态码
HTTP通信过程中代理
HTTP通信过程中网关
HTTP通信过程中隧道
SPDY
WebSocket
WebDAV
HTTPS
SSL
证书认证
加密机制
Web攻击
### TCP/IP
1. 是一个协议族
### TCP/IP的分层管理:TCP/IP协议族里最重要的一点
1. 应用层
应用层决定了向用户提供应用服务时通信的活动:HTTP协议也处于该层
2. 传输层
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
在传输层有两个性质不同的协议:TCP(传输控制协议)和UDP(用户数据报协议)
TCP协议:提供可靠的数据传输服务,确保数据最终送达到对方,
字节流服务:是为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理
为了确保数据传输到对方,TCP采用三次握手策略,握手过程中使用了ACK\SYN标志来确保到送对方
3. 网络层
网络层用来处理网络上流动的数据包,通过怎样的(传输路线)到达对方计算机,并把数据包传送给对方,IP协议就处于这一层,IP协议的作用是把各种数据包传送给到对方
IP地址:节点被分配到的地址,IP 地址可变换
MAC地址:网卡所属的固定地址,MAC地址一般不会变
4. 数据链路层
用来处理连接网络的硬件部分,包括控制操作系统、硬件的设备驱动等物理可见部分
### 与HTTP关系密切的三个协议:IP、TCP和DNS
1. DNS和HTTP协议一样都处于应用层,它提供域名到IP之间的解析服务,或IP到域名之间的解析服务
### URI和URL
1. URI(统一资源标识符)
2. URL(统一资源占位符)
### 持久连接:Keep-alive
1. HTTP协议的初始版本,每发送一个请求,TCP连接就会产生一次连接,然后再断开,因此,每次的请求会造成
无谓的连接与断开,增加通信量的开销,影响响应速度,在HTTP1.1中默认都是持久连接
2. 管线化(pipeline):持续连接使得请求可以并发,不需要像以前一样请求一个,结束之后才能继续请求一下,
现在可以实现并发请求
### Cookie
1. 通过在请求和响应中写入Cookie信息来控制客户端的状态
2. 服务器响应头SetCookie,通知客户端保存Cookie,客户端在请求中会带上Cookie
### 压缩传输内容编码:常用的内容编码有以下几种
1. gzip
2. compress(UNIX系统的标准压缩)
3. deflate
4. identity(不进行编码)
### HTTP的分块传输
1. 将内容进行分块传输,可以让浏览器逐步显示页面,不需要等全部加载完之后再渲染
### 内容协商:根据不同的要求返回不同的内容,比如中英文网站
### 状态码
1. 是客户端向服务器发送请求时,描述返回的请求结果
2. 1XX:Infomational(信息性状态码):接收的请求正在处理
3. 2XX:Success(成功状态码):请求正常处理完毕
4. 3XX:Redirection(重定向状态码):需要进行附加操作以完成请求
5. 4XX:Client Error(客户端状态码):服务器无法处理请求,错误由客户端引起的
6. 5XX:Server Error(服务器状态码):服务器处理请求出错,错误由服务端引起的
7. 301:永久性重定向
8. 302:临时性重定向
### 通信数据转发程序:代理、网关、隧道
1. 代理:可以理解为客户端和服务器端的“中间人”角色,接收客户端的请求发送给服务器,也接收服务器端的请求发送给客户端
2. 使用代理服务器的理由有:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的
3. 缓存代理:资源经过代理服务器的时候将资源缓存起来,客户端再次请求这个资源的时候代理直接返回
4. 网关:可使通信线路上的服务器提供非HTTP协议服务
5. 隧道:隧道建立起一条客户端与服务器之间的安全通信线路
### 缓存
1. 缓存是指代理服务器或客户端本地磁盘内保存的资源副本
2. 利用缓存可减少对服务器的访问,因此节约了通信流量和通信时间,也降低了服务器的压力
3. 缓存的有效期限:需要向源服务器确认资源有没有过期
### HTTP的缺点
1. 通信使用明文(不加密),内容可被他人看到
即使加密过的内容,依旧可以被看到,只是加密过后原内容看不懂
2. 不验证通信方的身份,因此有可能遭遇伪装
3. 无法证明报文的完整性,所以有可能已遭篡改
### HTTPS = SSL(secure + socket + layer:安全套接层) + HTTP
1. SSL建立安全通信线路后客户端和服务端再进行通信
2.