HTTP常用请求头大揭秘 (5)

在不安全的聊天室或者论坛等,看到一张图片,实际上他可能是请求了你的某个银行的转账接口,让你的钱转到别人的账上,如果打开了这个图片,并且之前已经登陆过银行账号,并且Cookie仍然有效,那么钱就有可能被转走了。

<img src="http://bank.test.com/withdraw?account=youraccount&amount=10000&for=arthinking">

为此,常见对因对措施有:

对用户输入进行XSS过滤;

敏感的业务操作都需要添加各种形式的校验:如密码、短信验证码等;

敏感信息Cookie设置有效期尽可能短...

本文首次发表于: HTTP常用请求头大揭秘 以及公众号 Java架构杂谈,未经许可,不得转载。

4.5、HTTP缓存机制 4.5.1、缓存请求指令

客户端可以用Cache-Control请求首部来强化或者放松对过期时间的限制。

指令 说明
Cache-Control: max-age=<seconds>   拒绝接受缓存时间长于seconds秒的资源,如果seconds为0,则表示请求获取最新的资源;  
Cache-control: no-cache   除非资源进行了再验证,否则这个客户端不会接受已缓存的资源;  
Cache-control: no-store   缓存不应存储有关客户端请求或服务器响应的任何内容,即不使用任何缓存;  
Cache-control: only-if-cached   表明客户端只接受已缓存的响应,并且不要向原始服务器检查是否有新的拷贝;  
Cache-control: no-transform   不得对资源进行转换或转变。Content-Encoding、Content-Range、Content-Type等HTTP头不能由代理修改  
Cache-Control: max-stale[=<seconds>]   表明客户端愿意接收一个已经过期的资源。可以设置一个可选的秒数,表示响应不能已经过时超过该给定的时间  
Cache-Control: min-fresh=<seconds>   表示客户端希望获取一个能在指定的秒数内保持其最新状态的响应  
4.5.2、缓存响应指令 指令 说明
Cache-Control: max-age=<seconds>   设置缓存存储的最大周期,超过这个时间缓存被认为过期(单位秒)  
Cache-control: no-store   缓存不应存储有关客户端请求或服务器响应的任何内容,即不使用任何缓存  
Cache-control: no-cache   在发布缓存副本之前,强制要求缓存把请求提交给原始服务器进行验证(协商缓存验证)  
Cache-Control: must-revalidate   一旦资源过期(比如已经超过max-age),在成功向原始服务器验证之前,缓存不能用该资源响应后续请求  
Cache-control: no-transform   一旦资源过期(比如已经超过max-age),在成功向原始服务器验证之前,缓存不能用该资源响应后续请求  
Cache-control: public   表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存,即使是通常不可缓存的内容。(例如:1.该响应没有max-age指令或Expires消息头;2. 该响应对应的请求方法是 POST 。)  
Cache-control: private   表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)。私有缓存可以缓存响应内容,比如:对应用户的本地浏览器  
Cache-control: proxy-revalidate   与must-revalidate作用相同,但它仅适用于共享缓存(例如代理),并被私有缓存忽略  
Cache-control: s-maxage=<seconds>   覆盖max-age或者Expires头,但是仅适用于共享缓存(比如各个代理),私有缓存会忽略它  
4.5.3、服务器再验证 指令 说明
If-Modified-Since: Date   第一次响应报文提供Last-modified,第二次请求带上这个值,给服务端验证缓存是否有修改,无修改则返回:304 Not Modified  
If-None-Match: ETag   第一次响应报文提供ETag,第二次请求带上这个值,给服务端验证缓存是否最新,无修改则返回:304 Not Modified,  

Last-modified和ETag有什么区别?

有任何改动,ETag都会变动,但是同一秒内的改动,Last-modified是一样的。

4.6、HTTP代理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyypfj.html