一、七层模型


UDP
- 无连接
- 面向报文,只是报文的搬运工
- 不可靠,没有拥塞控制
- 高效,头部开销只有8字节
- 支持一对一、一对多、多对多、多对一
- 适合直播、视频、语音、会议等实时性要求高的
TCP
- 面向连接:传输前需要先连接
- 可靠的传输
- 流量控制:发送方不会发送速度过快,超过接收方的处理能力
- 拥塞控制:当网络负载过多时能限制发送方的发送速率
- 不提供时延保障
- 不提供最小带宽保障
二、HTTP方法
1. HTTP方法
HTTP 1.0
- GET:从指定的资源请求数据
- POST:向指定的资源提交要被处理的数据
- HEAD:类似于get请求,只不过返回的响应中没有具体的内容,只有首部。检查超链接的有效性,检查网页是否被修改。
HTTP 1.1
- PUT:替换或创建指定资源
- DELETE:对指定资源进行删除
HTTP 2.0
- OPTIONS: 用于获取目的资源所支持的通信选项,比如说服务器支持的请求方式等等。
- TRACE:让服务器讲之前的请求回环给客户端 ,提供了一种实用的 debug 机制。
- CONNECT:把请求连接转换到透明的TPC / IP通道
2. GET 和 POST 区别
- get参数通过url传递,post放在request body中。
- get请求在url中传递的参数是有长度限制的,而post没有。
- get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。
- get请求只能进行url编码,而post支持多种编码方式。
- get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。
三、HTTP报文
HTTP报文 = 首部 + 空行(CR+LF)+主体
1. HTTP报文
1.1 请求报文
请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段以及实体主体构成。

1.2 响应报文
响应报文由协议版本、状态码、原因短语、可选的响应首部字段以及实体主体构成。

2. HTTP状态码
2xx:成功

3xx:重定向

4xx:客户端错误

5xx:服务器错误

3. HTTP首部
3.1 通用首部

3.2 请求首部

3.3 响应首部

3.4 实体首部

三、其他协议
1. HTTPS
1. HTTP
(1)使用明文:HTTP 报文使用明文(不加密),内容可能会被窃听。
(2)不验证:不验证“服务器是否就是发送请求中 URI 真正指定的主机,返回的响应是否真的 返回到实际提出请求的客户端”,有可能遭遇伪装。
(3)无法证明通信的报文完整性:在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉。
2. HTTPS
(1)内容加密:采用混合加密技术,中间者无法直接查看明文内容
(2)验证身份:通过证书认证客户端访问的。
(3)保护数据完整性:防止传输的内容被中间人冒充或者篡改
2. SPDY

3. WebSocket

4. HTTP 2.0

四、web攻击技术
1. 输出值转义不完全

2. 设置或设计缺陷

3. 会话管理疏忽

4. 其他安全漏洞
