初识HTTP——读《图解HTTP》
HTTP报文
用于HTTP协议交互的信息被称为HTTP报文。来自客户端的HTTP报文叫做请求报文,来自服务端的叫做响应报文。
HTTP报文是由多行数据构成的字符串文本。
HTTP请求报文:
HTTP响应报文:
URL、URI 和URN
Cookie
HTTP协议是一种无状态协议——不对之前发生过的请求和响应的状态进行管理,也就是说,无法根据之前的状态进行本次的请求处理。假设要求登录认证的Web页面本身无法进行状态管理,那么每次跳转到新页面就要再次登录。
无状态协议的优点:减少服务器的CPU及内存资源的消耗。
如何保留无状态协议这个特征同时解决问题——Cookie技术。
Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。
HTTPS
HTTP协议的不足:
1.通信使用不加密的明文——内容可能被窃听
2.不验证通信方的身份——可能有伪装者
3.无法证明报文的完整性——可能遭篡改
对于第一点不足,目前防止窃听的主要方式是将通信加密,HTTP中没有加密机制,但可以通过SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全传输层协议)来加密HTTP通信的内容。
与SSL组合使用的HTTP协议被称为HTTPS(HTTP Secure,超文本传输安全协议)
对于第二点不足,SSL提供了一种被称为证书的手段用于确定通信方,证书由值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。
对于第三点不足,通常使用MD5和SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法。提供文件下载服务的Web网站也会提供相应的以PGP(Pretty Good Privacy,完美隐私)创建的数字签名及MD5算法生成的散列值。PGP是用来证明创建文件的数字签名,MD5是由单向函数生成的散列值。不论使用哪一种方法,都需要操纵客户端的用户本人亲自检查验证下载的文件是否就是原来服务器上的文件。浏览器无法自动帮用户检查。