HTTP协议笔记

HTTP协议是基于TCP协议的上层应用协议

特点1无连接:每次连接只处理一个请求,处理完即断开连接

特点2无状态:每次连接需要的信息都要重传


RESTful:一种流行的互联网软件设计架构 含义是资源表现层状态转化,包括三部分

1.定义直观简短的资源地址URI  (应当是名词,动作放到参数里)

2.定义传输的资源:Web服务接受与返回的互联网媒体类型,如JSON,XML等

3.对资源的操作方法:GET获取资源 POST/PUT更新资源 DELETE删除资源


HTTP有两种消息,请求消息和响应消息,均包括三部分,其中首行和头部 基于ASCII编码,正文通常约定UTF-8

请求首行:GET /simple.html HTTP/1.1     方法,路径,版本

响应首行:HTTP/1.1 200 OK 版本号,状态码,状态文本


常用HTTP方法:

先解释一下幂等性:一次请求与多次请求具有相同的副作用

GET请求只有Header,没有Body,响应对应URI的资源表述,

GET不改变状态,幂等,可缓存,有长度限制,不应在处理敏感数据时使用

POST会改变状态,不具备幂等性(比如重复新建会产生多个新资源),没有缓存

DELETE会改变状态,有幂等性(重复删除应当把403响应修正为200)

HEAD相当于返回没有Body的GET响应

PUT相当于有幂等性的POST(重复新建只返回一个新资源)


URI路径,前面用/组成目录路径,?后跟查询字符串,查询字符串由多个键值对组成,用=组成键值对,用&连接多个键值对

/path/res?key1&key2=&key3=v3       定义了key1,key2为空字符串,key3值为v3

关于URL编码

网址采用UTF-8编码;查询字符串采用操作系统编码;在已有网页中GET和POST采用网页规定的编码;Ajax采用浏览器规定编码

通常在提交前先对URL编码,避免操作系统、网页、浏览器的编码差异

转码:&:%26   = :%3D   % :%25


常用HTTP消息头

Accept及Accept-xx,指定可接受的内容类型、编码集、语言等等

Cookie 用于辨认身份的会话缓存 Set-Cookie 设置Cookie


Expires 一个GMT时间,超过此时间认为缓存失效(受客户端时间正确性影响)

ETag 告诉浏览器该资源的唯一标识符(生成规则由服务器指定)

If-None-Match 将同一资源响应的ETag值发给服务器

Last-Modified 告诉浏览器最后更新的时间

If-Modified-Since 将同一资源响应的Last-Modified值发给服务器

Cache-Control 缓存机制

public共享缓存,private对应不同用户有不同缓存

no-cache  不校验缓存强制请求服务器数据

no-store   不保存缓存

max-age=[秒] 对比缓存的时间,超过规定的则认为缓存失效  max-age=0 不保存缓存

only-if-cached 只想要缓存,不发起请求,并且会忽视max-age

max-stale=[秒] 对比缓存的时间,超过规定的则认为缓存失效


如果Cache-Control规定no-cache则直接请求服务器并且不再校验ETag、Last-Modified和Expires

如果Cache-Control通过only-if-cahced&max-stale、max-age等规则认定缓存有效将不会发起请求而直接使用缓存

否则发起请求校验ETag,如果匹配再校验 Last-Modified,如果匹配则返回 304告知浏览器使用缓存

前三项都没设置才会校验Expires


常见状态码:

2xx成功:200成功,

3xx重定向:301已转至新URL 304已转至缓存

4xx客户端错误:400请求格式错误  403禁止访问(权限错误) 404未找到

5xx服务器错误:500服务器未知错误  502从上游服务器获得无效响应 503服务器过载/当机 504网关超时


参考链接:

HTTP必知必会:http://www.cnblogs.com/starstone/p/4890409.html

理解RESTful架构 : http://www.ruanyifeng.com/blog/2011/09/restful

理解HTTP幂等性: http://www.cnblogs.com/weidagang2046/archive/2011/06/04/idempotence.html

HTTP方法详解:http://blog.lucode.net/protocol/http-method-tutorial.html

Web浏览器的缓存机制 :http://www.alloyteam.com/2012/03/web-cache-2-browser-cache/#prettyPhoto

HTTP 状态消息大全: http://www.w3school.com.cn/tags/html_ref_httpmessages.asp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值