[TOC]
1、浏览器发起HTTP请求的典型场景
2、HTTP协议
2.1、定义
一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动
2.2、基于ABNF定义的HTTP消息
2.3、网络为什么要分层?
OSI三次模型
- 应用层:HTTP,P2P实际所在的层次,解决业务问题
- 表示层:负责将网络消息转换为应用层可以读取的消息
- 会话层:建立session,建立会话和管理
- 传输层:进程之间的通讯,报文可达。TCP
- 网络层:广域网,IP协议
- 数据链路层:局域网中,二层路由器
- 物理层:物理介质。交换机
TCP/IP协议
2.4、HTTP解决了什么问题?
2.5、HTTP设计遵循的web架构原则
- a路径:代理+反向代理+服务器
- b路径:直接到达服务器
- c路径:代理+服务器
3、五类架构风格推到出HTTP的REST架构
3.1、架构风格
3.1.1、数据流风格
3.1.2、复制风格
3.1.3、分层风格
3.1.4、移动代码风格
3.1.5、点对点风格
3.2、风格演化(LCODC$SS)
4、URI的基本格式以及与URL的区别
4.1、什么是URI
4.2、URI的组成
4.3、URI的格式
4.4、相对URI
4.5、URI编码
4.5.1、为什么要进行URI编码?
4.5.2、编码方式
5、HTTP请求行
5.1、请求格式
5.2、常见方法
6、HTTP响应
6.1、HTTP响应行
6.2、HTTP响应码
7、长连接与短连接
7.1、简单的短连接
7.2、持久的长连接
7.3、connect注意事项
8、HOST头部
8.1、如何传递IP地址到服务器?
9、请求与响应的上下文
9.1、User-Agent
9.2、Referer
9.3、From
9.4、Server
9.5、Allow 与Accept-Ranges
10、内容协商
10.1、定义
10.2、分类
10.2.1、Proactive
10.2.2、Reactive
10.3、协商要素
11、HTTP包体的传输方式
11.1、定义
11.2、传输方式
11.2.1、方式一
11.2.2、方式二
11.3、其他头部
12、form表单提交协议
12.1、定义
12.2、关键属性
13、断点续传与多线程下载
13.1、实际场景
13.2、HHTP Range规范
若if-Range头部校验不通过,会返回0-end(end表示此次发送的结尾)这么多的数据
与if-match头部返回两次性能优化
13.3、服务器响应
14、cookie的格式和约束
14.1、定义
14.2、问题与限制
15、session
15.1、cookie与session
15.2、三方cookie
16、浏览器的同源策略
16.1、为什么需要?
16.2、定义
16.3、CSRF
这个方式已经被破解,攻击者可以获取你的全部cookie
16.4、CORS简介
17、条件请求
17.1、定义
17.2、验证
17.3、应用场景
17.3.1、缓存更新
17.3.2、增量更新
17.3.3、更新丢失
17.4、nginx模块如何条件验证
18、HTTP缓存的工作原理
18.1、原理
18.2、私有与共享缓存
18.3、缓存原理
18.4、判断缓存是否过期
18.5、Age 头部及 current_age 的计算
19、Cache-Control 头部
19.1、定义
19.2、请求的含义
19.3、响应的含义
20、什么样的响应会被缓存?
20.1、定义
20.2、使用条件
20.3、如何缓存更新频率不同的资源
21、HTTP重定向
21.1、为什么需要 URI 重定向?
21.2、重定向流程
21.3、重定向响应返回码
21.4、重定向循环
22、Http Tunnel 隧道
22.1、目的
22.2、请求行
22.3、常见应用
23、网络爬虫
23.1、定义
23.2、对待爬虫的态度
23.3、网络爬虫如何抓取数据?
24、HTTP资源的认证
24.1、定义
24.2、响应
25、DNS协议解析域名
25.1、定义
25.2、结构
25.3、查询与响应