一边读《图解http》,一边写总结,对知识做一个系统化,模板化的快速理解
TCP/IP的分层管理
- 应用层决定了向用户提供应用服务时通信的活动。(FTP、DNS、http协议)
- 传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。(TCP和UDP协议)
- 网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
- 链路层(又名数据链路层,网络接口层)用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。
三次握手和四次挥手
http/1.0 和 http/1.1支持的方法
内容协商技术
- 服务器驱动协商;以请求的首部字段为参考,在服务器端自动处理
- 客户端去顶协商;用户从浏览器显示的可选项列表中手动选择
- 透明协商;由服务器端和客户端各自进行协商的一种方法
http状态码
2XX
- 200 ok:表示从客户端发来的请求在服务器端被正常处理
- 204 no content:表示服务器接受的请求已成功处理,但在返回的响应报文中不含实体的主体部分
- 206 partial content:表示客户端进行了范围请求,而服务器成功执行了这部分的get请求
3XX
- 301 moved permanently:永久性重定向,该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI
- 302 found:临时性重定向:该状态码表示请求的资源已被分配了新的URI,希望用户能使用新的URI访问
- 303 see other:该状态码表示由于请求对应的资源存在着另一个URI,应使用get方法定向获取请求的资源
- 304 not modified:该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况
- 307 temporary redirect:临时重定向,跟302 found有着相同的含义,307会遵守浏览器标准,不会从post变为get
4XX
- 400 bad request:该状态码表示请求报文中存在语法错误
- 401 unauthorized:该状态码表示发送的请求需要有着通过http认证的认证信息
- 403 forbidden:该状态码表示请求资源的访问被服务器拒绝了,服务器端没有必要给出拒绝的详细理由
- 404 not found:该状态码表明服务器上无法找到请求的资源
5XX
- 500 internal server error:该状态码表明服务器端在执行请求发生了错误,也有可能是web应用存在的bug或某些临时的故障
- 503 service unavailable:该状态码表示服务器暂时处于超负载或正在进行停机维护,现在无法处理请求
通信数据转发程序
代理
- 缓存代理:代理转发响应时,缓存代理(Caching Proxy)会预先将资源的副本(缓存)保存在代理服务器上。当代理再次接收到对相同资源的请求时,就可以不从源服务器那里获取资源,而是将之前缓存的资源作为响应返回。
- 透明代理:转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理(Transparent Proxy)。反之,对报文内容进行加工的代理被称为非透明代理
网关
- 网关能使通信线路上的服务器提供非http协议服务
- 利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全
隧道
- 隧道可按要求建立起一条与其他服务器的通信线路,届时使用 SSL 等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信
建立https通信的整个过程
Web的攻击技术
针对Web应用的攻击模式
- 主动攻击:以服务器为目标的主动攻击,攻击者通过直接访问Web应用,把攻击代码传入的攻击模式。代表性攻击是SQL注入攻击和OS命令注入攻击。
- 被动攻击:以服务器为目标的被动攻击,是指利用圈套策略执行攻击代码的攻击模式。代表性攻击为跨站脚本攻击和跨站点请求伪造。