1. URI>URL
URI:“A Uniform Resource Identifier (URI) 是一个紧凑的字符串用来标示抽象或物理资源。”
URL:“Uniform Resource Locator” (URL) 是URI的子集, 标识资源的地址
URN:URN作用就好像一个人的名字,URL就像一个人的地址。换句话说:“URN确定了东西的身份,URL提供了找到它的方式。”
绝对URI格式:
2. HTTP1.1协议结构
(1)请求报文:请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。
(2)响应报文:协议版本、状态码、用于解释状态码的短语、可选的响应首部字段以及实体主体构成。
(3)HTTP是不保存状态的协议
HTTP1.1虽然是无状态协议,但为了实现保持状态,于是引入Cookie技术,有了Cookie就可以管理状态了
(4)请求URI定位资源
(5)告知服务器意图
GET:获取资源
GET用来请求访问一被URI识别的资源,如果请求的资源是文本,那就保持原样返回,如果是CGI那样的程序,则返回执行后的结果。
POST:传输实体主体
虽然用GET也可以传输实体,但一般用POST
PUT:传输文件
HTTP1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全问题。所以一般不用。
HEAD:获取报文首部
HEAD方法和GET方法一样,只是不反悔报文主体部分。用于确认URI的有效性及资源更新的日期时间等。
DELETE:删除文件
HTTP1.1的DELETE方法自身不带验证机制,任何人都可以上传文件,存在安全问题。所以一般不用。除非配合Wev应用程序的验证机制或者遵守REST标准时还是有可能开放使用的。
OPTIONS:询问支持的方法
TRACE:追踪路径
不常用,加上它容易引发XST(Cross-Site-Tracing,跨站追踪)攻击
CONNECT:要求用隧道协议连接代理
(6)使用方法下达命令
(7)持久连接节省通信量
只要任意一端没有明确提出断开连接,则保持TCP连接状态:HTTP keep-alive
好处:在于减少了TCP连接的重复建立和断开所造成的额外开销以及更快地展示页面。在HTTP1.1中,所有的连接默认都是持久连接。
在于还有管线化技术让并行成为可能,而不需要一个接一个地等待响应。
(8)使用Cookie的状态管理
不保存状态的好处:减少服务器的CPU及内存资源的消耗
Cookie原理如下图:
上图展示了发生 Cookie 交互的情景,HTTP 请求报文和响应报文的内 容如下。