Http协议基础
-
明文
七层应用层明文协议,没有内建的机密性安全机制
嗅探或代理截断可查看全部明文信息
https传输密文
能提高传输层安全(传输过程中起到加密作用,防止信息的窃取和篡改) -
无状态
TCP和UDP协议
TCP:有状态
协议层面:会根据客户端发的请求包,服务器端给出相对应的响应,客户端每传一个请求过来,服务器端都会给他一个ack,来确认连接状态
UDP:无状态
协议层面:不管接收者有没有接到数据,都不管,不会 重新发送
每一次客户端和服务端的通讯都是独立的过程
web引用需要跟踪客户端会话(多步通信)
不使用cookie的应用,客户端每次请求都要重新 身份(不现实)
session用于在用户身份验证后跟踪用户行为轨迹(定时失效,重新获取)
提高用户体验,但增加了攻击向量 -
Cycle
请求/响应 -
重要的header
set-cookie:服务器发给客户端的sessionID(被窃取的风险)
content-length:响应body部分的字节长度
location:重定向用户到另一个页面,可识别身份认证后允许访问的页面
cookie:客户端发回给服务器证明用户状态的信息(头=值成对出现)
referrer:发起新请求之前用户位于哪个页面,服务器基于此头的安全限制很容易被修改绕过
上面三个是服务端向客户端响应头,下面是请求头 -
状态码(响应码)
服务端响应的状态码表示响应的结果类型(5大类50多个具体响应码)
100s:服务器响应的信息,通常表示服务器还有后续处理,很少出现
200s:请求被服务器成功接受并处理后返回的响应结果
300s:重定向,通常在身份认证成功之后重定向到一个安全的页面(301永久重定向/302临时重定向)
400s:表示客户端请求错误
401:需要身份验证
403:拒绝访问
404:目标未发现
500s:服务器内部错误(503:服务器不可用)