之前陆陆续续学了一些关于http的知识,现在准备系统看一下。
http方法
方法 | 说明 | 支持的http版本 |
---|---|---|
GET | 获取资源 | 1.0/1.1 |
POST | 传输实体主题 | 1.0/1.1 |
PUT | 传输文件 | 1.0/1.1 |
HEAD | 获得首部 | 1.0/1.1 |
DELETE | 删除文件 | 1.0/1.1 |
OPTIONS | 询问服务器支持的方法 | 1.1 |
TRACE | 追踪路径 | 1.1 |
CONNECT | 隧道协议代理 | 1.1 |
LINK | 建立和资源之间的联系 | 1.0 |
UNLINK | 断开连接关系 | 1.0 |
http长连接
由于短链接状态下,每次请求资源都会进行tcp的握手和挥手,当前的页面上一般会包含很多资源,使用短连接将会大大增加开销。
长连接:在双方没有明确提出断开连接的情况下,保持连接。(http1.1默认长连接)
Cookie
Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
请求报文(不包含Cookie)1
2
3GET /reader/ HTTP/ 1.1
Host: hackr.jp
*首部字段内没有Cookie的相关信息
响应报文(服务器端生成Cookies)1
2
3
4
5HTTP/ 1.1 200 OK
Date: Thu, 12 Jul 2012 07: 12: 20 GMT
Server: Apache
< Set-Cookie: sid = 1342077140226724; path =/; expires = Wed, 10-Oct-12 07: 12: 20 GMT >
Content-Type: text/ plain; charset = UTF-8
请求报文(自动发送保存的Cookies)1
2
3GET /image/ HTTP/ 1.1
Host: hackr.jp
Cookie: sid = 1342077140226724