HTTP权威指南读书笔记I
Scheme:方案(差点老花眼看成schema了)
- http: 默认端口80
http://<host>:<port>/<path>?<query>#<frag>
- https: 安全的http 默认端口443
https://<host>:<port>/<path>?<query>#<frag>
- mailto:
mailto:antwork@126.com
- ftp: 文件传输协议URL可以用来上传下载,并获取FTP服务器上的目录结构内容的列表
ftp://<user>:<password>@<host>:<port>;<params>
- rtsp, rtspu(u代表udp): Real Time Streaming Protocol:实时流传输协议
rtsp://www.baidu.com:554/abc/video
- file: 主机上可直接访问的文件
file://<host>/<path>
- news: 一些特定的文章或新闻组
news:rec.arts.startrek
- telnet: 访问交互式业务。通过telnet协议访问的交互式应用程序(资源)
telnet://<user>:<password>@<host>:<port>/
HTTP方法:
GET 从服务器向客户端发送命名资源,应该安全使用的方法,多次调用不影响资源
PUT 将客户端的数据存储到一个命名的服务器
- POST 将客户端数据发送到一个服务器网关应用程序
- DELETE 从服务器中删除命名资源
- HEAD 仅发送命名资源响应中的HTTP首部
只返回首部的Get方法。用途:1.了解资源情况;2.确定对象的存在;3.检查是否被修改 - TRACE 主要用于诊断,用于查看代理和其他应用程序对用户请求所产生效果。但是它依赖于中间件的处理,不是特别可靠。
- OPTION 请求服务器告知其支持的各种功能, 比如返回Allow: GET, POST, PUT, OPTIONS
- DELETE 请求服务器删除某资源,但是服务器可能在不通知客户端的情况下撤销请求,所以不是很可靠
POST与PUT比较类似,都可以用来创建和更新资源,真实区别在于幂等性,简单来说,幂等的话调用多次和调用一次的副作用是一样的,POST不是幂等的,多次调用会创建多个新数据,而PUT应该是幂等的。其实具体怎么用都是使用者自己来决定,但是HTTP给到的规范,实施者还是应该根据两者区别正确使用,具体说明见参考链接。
状态码
整体范围 | 已定义范围 | 分类 |
---|---|---|
100~199 | 100~101 | 信息提示 |
200~299 | 200~206 | 成功 |
300~399 | 300~305 | 重定向 |
400~499 | 400~415 | 客户端错误 |
500~599 | 500~505 | 服务器错误 |
常见状态码:
200 成功
301 在请求资源被移走时使用,头部的Location字段包含现有资源位置
302 与301类似,区别在于301是永久迁移,301是临时定位,将来还会用回老的url
401 未授权
404 没找到资源
500 后台错误
名词解释:
URI: Uniform Resources Identifier 统一资源标识符;理论名词.
- URL: Uniform Resources Location 统一资源定位符;是URI的一种表现形式,URI子集
- URN: Uniform Resources Name 统一资源名; 与资源无关,资源可以四处搬移,URI子集,试验阶段。
MIME: Multipurpose Internet Mail Extension 多用途因特网邮件扩展,这个有点逗,原来用在接收多类型邮件,直接用在了HTTP了。
参考:
幂等性:http://www.cnblogs.com/weidagang2046/archive/2011/06/04/idempotence.html