1. 第一章
1.tcp/ip分层
- 应用层:
为用户提供应用服务,比如HTTP,FTP - 传输层:
对上层应用层提供网络连接,进行数据传输(实现进程到进程之间的通信),(报文打上标记序号和端口号)。TCP/UDP - 网络层:
处理网络上流动的数据包,规划传输路径( 实现主机到主机之间的通信.)(增加mac地址)。ip - 链路层:
处理连接网络的硬件部分,包括控制操作系统,硬件设备。路由器,交换机 - 物理层
2.通信传输流
发送端从应用程序往下走,接收端从应用程序往走
ip协议:把数据包发送给对端,两个条件mac地址和ip地址
URI和URL的区别:URL是URI的子集
第二章
http协议
-
用于客户端和服务端之间的通信
-
通过 请求和相应的交换达成通信
-
不保存状态的协议,不做持久化处理
cookie解决这个弊端 -
请求URI的定位资源
域名和ip地址都可以定位资源 -
告知服务器意图的http方法
get获取资源
post传输实体的主体
head获得报文首部
options询问支持的方法
tarcer路径追踪
connection与代理服务器建立隧道 -
使用方法下达命令
GET、POST、HEAD
-
持久连接可以节通信量
解决方法1:HTTP keep-alive,只要一端没提出断开链接,则保持TCP连接状态
好处:减少了TCP重新连接和断开的开销,减轻服务器负载
方法2:管线化,可以不需要相应直接发送下一个请求 -
使用Cookie状态管理
如果客户端第一次向服务端发送请求,服务端在响应中会添加Cookie,之后客户端再向该服务端发送请求,会在请求头中自动添加Cookie
第三章,http报文内的信息
一、请求报文和响应报文
请求行:包含请求方法,请求URI和HTTP版本
状态行:包含响应状态码,原因短语和HTTP版本
首部字段:包含请求和响应的各种条件和属性
二、 编码提升传输效率
1.报文主体和实体差异
- 报文:http通信基本单位,由8位组字节流组成
- 实体:作为请求或响应有效载荷数据被传输,内容由实体首部和实体主体组成
通常报文主体=实体主体,只有在传输进行编码时实体内容才会变化
2.压缩传输的内容编码
3.分隔发送的分块传输编码
每一块用16进制标记
第四章 返回HTTP状态码
1)2XX成功
- 200OK
- 204请求处理成功,但没资源返回
- 206表示客户端进行了范围请求
2)3XX重定向
- 301永久性重定向
- 302临时重定向,请求资源被分配新的URI,希望本次用新的URI
- 303和302功能相同,唯一不同只能采用GET方法获取资源
- 304和重定向没关系。缓冲原因
- 307临时重定向
- 4XX客户端错误
- 400请求报文语法错误
- 401没有HTTP认证
- 403请求被服务器拒绝(可能是访问权限)
- 404服务器没有找到请求资源
4)5XX服务器错误
- 500服务器执行请求发生错误
- 503服务器暂时负载或正在维护
第五章 HTTP协作的web服务器
1.用单个虚拟机实现多个域名
2.通信数据转发程序:代理、网关、隧道
代理
- 缓冲代理
代理转发响应时,缓存代理会预先将(缓冲资源) 保存在代理服务器上,当再次接受到相同请求,就可以不从服务器获取,直接发送缓冲中的数据 - 透明代理
请求和响应时,不对报文进行任何加工的代理类型
网关
可以提高通信的安全性,可以使用数据库SQL语句,可以提供非HTTP服务
隧道
建立起一条与其他服务器的通信线路,使用SSL等加密手段,可以确保客户端和服务端安全通信
3.保存缓冲资源
代理服务器保存的一份副本,可以节省通信流量和通信时间
客户端缓冲:如果有效,直接从磁盘读取,不需要和服务端请求获取
HTTP首部
http请求报文:方法+URI+HTTP版本、HTTP首部字段等构成
响应报文:由HTTP版本+状态码+HTTP首部字段组成
HTTP首部字段
传递额外重要信息
- 首部字段结构
Content-Type: text/html
//首部字段名:字符串
Keep-Alive: timeout=15, max=100
当出现2个相同首部字段名,浏览器会优先处理第一次出现的首部字段
- 4种HTTP首部字段类型
- 通用首部字段(请求和响应报文都会使用)
- 请求首部字段
- 相应首部字段
- 实体首部字段
- 通用首部字段
1) Cache-Control,操作缓冲工作机制
- no-cache:防止从缓冲中返回过期资源
- no-store:不进行缓冲
- s-maxage:多用户使用公共缓冲
- max-age:缓冲最长时间
- min-fresh:要求缓冲服务器返回至少的缓冲资源
- max-stale:即使过期也照常接收
2) connection:控制不再转发首部,管理持久化,控制不再转发给代理
- 请求首部地址
- Accept
- Accept
第七章 HTTPS
HTTP缺点
- 通信使用铭文(不加密),内容可能被窃听
- 不验证通信方的身份,因此可能遭遇伪装
(可能确认请求方真是意图,可能被dos攻击) - 无法证明报文的完整性,可能被篡改
HTTP+加密+认证+完整性保护=HTTPS
- https是披着SSL外壳的HTTP
- https使用混合加密机制
- SSL要进行加密解密,消耗CPU资源,所以速度会变慢