【图解HTTP】笔记

网络基础

TCP/IP 协议族

TCP/IP是互联网相关的各类协议族的总称,HTTP属于它内部的一个子集

TCP/IP 的分层管理

TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层

  • 应用层:FTP协议(文件传输协议)、DNS(域名系统)、HTTP协议

HTTP协议的职责是生成针对目标Web服务器的HTTP请求报文

  • 传输层:TCP协议(传输控制协议)、UDP(用户数据报协议)

TCP协议的职责是将HTTP请求报文分割成报文段,按序号分为多个报文段

  • 网络层:网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位

IP协议的职责是找到通信目的地的MAC地址后转发给链路层

  • 链路层:用来处理连接网络的硬件部分

image

image

HTTP协议

请求方法

  • GET:获取资源

  • POST:传输实体主体

  • PUT:传输文件

  • DELETE:删除文件

  • HEAD:获取报文首部

  • OPTIONS:询问支持的方法

  • TRACE:追踪路径

  • CONNECT:要求用隧道协议连接代理

HTTP报文

报文首部

  • 请求报文

    请求行:方法、URI、HTTP版本
    请求首部字段
    通用首部字段
    实体首部字段
    其他
    
  • 响应报文

    状态行:HTTP版本、状态码
    响应首部字段
    通用首部字段
    实体首部字段
    其他
    

状态码

  • 1XX(信息性状态码):接收的请求正在处理

  • 2XX(成功状态码):请求正常处理完毕

  • 3XX(重定向状态码):需要进行附加操作以完成请求

  • 4XX(客户端错误状态码):服务器无法处理请求

  • 5XX(服务端错误状态码):服务器处理请求出错

与HTTP协作的Web服务器

  • DNS服务器

  • 网关服务器

  • 代理服务器

  • 缓存服务器

  • 隧道服务器

确保Web安全的HTTPS

HTTP协议中没有加密机制,但可以通过和SSL(安全套接层)或TLS(安全传输层协议)的组合使用,加密HTTP的通信内容。与SSL组合使用的HTTP被称为HTTPS。

HTTP+加密+认证+完整性保护=HTTPS

  • 共享密钥加密

    加密和解密用同一个密钥的方式称为共享密钥加密

  • 公开密钥加密

    使用一对非对称的密钥。一把叫做私有密钥,另一把叫做公有密钥

    使用公开密钥加密的方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送原来解密的私有密钥,也不必担心密钥被攻击者窃听盗走
    

HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制

在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享密钥加密方式

使用由数字证书认证机构和其相关机关颁发的公开密钥证书证明公开密钥的正确性

1
2
3
为什么不一直使用HTTPS?
与存文本通信相比,加密通信会消耗更多的CPU及内存资源。如果每次通信都加密,会消耗相当多的资源,平摊到一个计算机上时,能够处理的请求数量必定也会随之减少。
因此,如果是非敏感信息则使用HTTP通信,只有在包含个人信息等敏感数据时,才利用HTTPS加密通信

基于HTTP的功能追加协议

为解决HTTP协议的瓶颈追加的一些功能协议

  • AJAX:异步加载

  • Comet:服务端推送

  • SPDY:在应用层与传输层之间新增会话层

    多路复用流
    赋予请求优先级
    压缩HTTP首部
    推送功能
    服务器提示功能
    
  • WebSocket:使用浏览器进行全双工通信

    推送
    减少通信量
    
  • WebDAV:可对Web服务器上的内容直接进行文件复制、编辑等操作的分布式文件系统

构建Web内容的技术

  • HTML

  • 动态HTML

  • CGI:是指Web服务器在接收到客户端发送过来的请求后转发给程序的一组机制

  • Servlet

  • XML

  • RSS:和Atom都是发布新闻或博客日志等更新信息文档的格式的总称

  • JSON

Web的攻击技术

  • 跨站脚本攻击

  • SQL注入攻击

  • OS命令注入攻击

  • HTTP首部注入攻击

  • 目录遍历攻击

  • 强制浏览

  • 不正确的错误消息处理

  • 会话劫持

  • 会话固定攻击

  • 跨站点请求伪造

  • 密码破解

  • DoS攻击:让运行中的服务呈停止状态的攻击

参考文献

  • 【图解HTTP】书籍