http header 总结

简介: 经过一天半的时间,终于是解决了request头部无法放入authorization键值的问题,试了很多种方法,绕了很多弯路,甚至将整个框架从1.19版本提升到2.22版本,最后发现仅仅是response.addHeader写成了response.setHeader的问题,当最后发现这个问题的时候,都不知道是该高兴还是悲哀。

经过一天半的时间,终于是解决了request头部无法放入authorization键值的问题,试了很多种方法,绕了很多弯路,甚至将整个框架从1.19版本提升到2.22版本,最后发现仅仅是response.addHeader写成了response.setHeader的问题,当最后发现这个问题的时候,都不知道是该高兴还是悲哀。

究其原因,出现这种小bug却浪费了我大部分的时间的原因是,对于HTTP协议的不了解,遇到问题只知道Google或者stackflow,没有从原理上下功夫,项目中需要实现的功能,也是参考网上的代码,并没有实实在在的吃透,遇到bug也是过于依赖搜索引擎,没有做到从问题入手,从原理剖析,导致绕了一个大弯路,这个毛病一定要改正,因为随着编码时间逐渐增长,我所侧重的方向一定是越来越细化的,遇到的问题也是越来越个性化的,别人遇到相同的问题的几率会减少,光是在Google的结果中搜寻类似的问题就要耗掉我大量的时间,更不用说有可能根本别人这种问题,因此,一定要养成从原理剖析问题的能力和习惯。

鉴于此次的问题,我就在此总结一下对于Header的理解,顺便复习一下。

request header 中的属性

  • accept 客户端所可以接收的服务器所返回的数据类型(content-type)
  • Content-Type 请求的MIME Type
  • Origin 客户端的主域名,如果网页为http://www.example.com/v1/user 则为 www.example.com
  • referer 客户端的完整域名,
  • User-Agent 浏览器的信息
  • Access-Control-Request-Headers 告诉服务器,浏览器需要用到的header属性
  • X-Requested-With 用于分辨Ajax请求,angularjs默认为 XMLHttpRequest

response header中的属性

  • Access-Control-Allow-Origin 所允许访问的跨源域名,如www.example.com
  • Access-Control-Allow-Methods 所允许访问的方法, post,put, get ,delete, options
  • Access-Control-Allow-Credentials 布尔值,是否允许浏览器发送cookie
  • Access-Control-Allow-Headers 允许浏览器request header中带的头部值
  • Status 200 OK, 401 UnAuthorization, 500 Internal Server exception, 301 page remove

如果使用token进行安全验证, 则浏览器每次的request都需要发送token,通常是将其值设置为Authorization头,因此服务器的所有response中必须设置Access-Control-Allow-Headers中包含 Authorization

目录
相关文章
|
4月前
|
存储 算法 数据安全/隐私保护
基于 HTTP Header 传输签名参数
基于 HTTP Header 传输签名参数
92 13
|
4月前
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
|
JavaScript
HTTP header location 重定向 URL
HTTP header location 重定向 URL
|
缓存 Linux Apache
Requests Header | Http Header
Requests Header | Http Header
|
存储 安全 前端开发
认识http的方法、Header、状态码以及简单实现一个http的业务逻辑
认识http的方法、Header、状态码以及简单实现一个http的业务逻辑
91 2
|
前端开发 Java
java在过滤器中为http请求加请求头header
现在有一个需求场景是,每一个请求我都需要在请求头里面加上token这个请求头,作为一种校验机制,传统的接口可以通过设置一个全局的变量,然后通过页面携带过来(大概就是先将我们的token放在session中,写一个服务用来获取session中的token,然后主页面用ajax调用接口,将token放在隐藏域中,然后将请求头放进来,用ajax方法,这里不想洗说了),但是有一种情况是通过页面传递的并不一定都会适用所有接口,比如上传和下载的接口有时候头里面就没有token参数,可能是上传和下载是用表单提交的 这个时候如何将请求头通过后台的方法加进来? 想到用过滤器,用后台方法强制加入请求头。
165 0
|
缓存 安全 网络协议
Web Security 之 HTTP Host header attacks(下)
Web Security 之 HTTP Host header attacks
174 0
|
SQL 缓存 负载均衡
Web Security 之 HTTP Host header attacks(上)
Web Security 之 HTTP Host header attacks
745 0
|
XML Web App开发 缓存
斐迅面试记录—Http协议中的Header
斐迅面试记录—Http协议中的Header
108 0
|
前端开发 安全 网络协议
前端面试题目总结(Http)
前端面试题目总结(Http)
121 0
前端面试题目总结(Http)