读《图解HTTP》day01
一、URI和URL的区别
URI:统一资源标识符。某个协议方案表示的资源的定位标识符。用字符串标识某一互联网资源。
URL:统一资源定位符。表示资源的地点(互联网上所处的位置)。
可见,URL是URI的子集。
二、HTTP请求报文和响应报文解读
HTTP请求报文:由请求方法、请求URI、协议版本、可选的请求首部字段、内容实体构成。
GET:请求访问服务器的类型,称为方法。
/index.html:指明了请求访问的资源对象,也叫做请求URI。指定请求URI的方式有多种。
URI为完整的请求URI:
在首部字段Host中写明网络域名或IP地址:
如果不是访问特定资源而是对服务器本身发起请求,可以使用一个 * 来代替请求URI。
HTTP/1.1:HTTP版本号,提示客户端使用的HTTP协议功能。
HTTP响应报文:由协议版本、状态码、用以解释状态码的原因短语、可选的响应首部字段、实体主体构成。
HTTP/1.1:服务器对应的HTTP版本。
200 OK:请求处理结果的状态码和原因短语。
Date: Tue, 10 Jul 2012 06:50:15 GMT:创建响应的日期时间,是首部字段内的一个属性。
三、HTTP方法
注:方法名区分大小写,注意要用大写字母。
GET:获取资源。用来请求访问已被URI识别的资源。
POST:传输实体的主体。
PUT:传输文件。要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。
自身不带验证机制,任何人都可以上传文件,存在安全性问题。
HEAD:获得报文首部。用于确认URI的有效性以及资源更新的日期等,不返回报文主体部分。
DELETE:删除文件。按请求URI删除指定的资源。
自身不带验证机制。
OPTIONS:询问支持的方法。用来查询针对请求URI指定的资源支持的方法。
TRACE:追踪路径。让Web服务器端将之前的请求通信环回给客户端。
不常用,容易引起XST(Cross-Site Tracing,跨站追踪)攻击,更不会用到了。
CONNECT:要求用隧道协议连接代理。要求在与代理服务器通信时建立隧道,实现用隧道协议实现TCP通信。
使用SSL(Secure Sockets Layer,安全套接层)和TLS(Transport Layer Secure,传输层安全)协议把通信内容加密后经网络隧道传输。