首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能阻止辛纳特拉重写我的头名?

我怎样才能阻止辛纳特拉重写我的头名?
EN

Stack Overflow用户
提问于 2012-10-28 16:31:21
回答 1查看 687关注 0票数 6

西纳屈是骆驼-所有标题名称,造成'P3P‘的问题。代码:

代码语言:javascript
复制
require 'rubygems'
require 'sinatra'

configure :production do
  # Configure stuff here you'll want to
  # only be run at Heroku at boot

  # TIP:  You can get you database information
  #       from ENV['DATABASE_URI'] (see /env route below) 
end

# Quick test
get '/track' do
  #response.headers['Cache-Control'] = 'public, max-age=300'
  response.set_cookie("visited",1)
  response['this-that'] = "CP=\"CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE\""
  response['P3P'] = "CP=\"CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE\""
  "SUCCESS"
end

给我

代码语言:javascript
复制
* About to connect() to localhost port 9393 (#0)
*   Trying 127.0.0.1... connected
> GET /track HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: localhost:9393
> Accept: */*
> 
< HTTP/1.1 200 OK 
< X-Frame-Options: sameorigin
< X-Xss-Protection: 1; mode=block
< Content-Type: text/html;charset=utf-8
< This-That: CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"
< P3p: CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"
< Content-Length: 7
< Server: WEBrick/1.3.1 (Ruby/1.9.2/2012-04-20)
< Date: Sun, 28 Oct 2012 16:26:47 GMT
< Connection: Keep-Alive
< Set-Cookie: visited=1
< 
* Connection #0 to host localhost left intact
* Closing connection #0
SUCCESS

如您所见,this-that被重写为This-ThatP3P被重写为P3p。这是我的宝石清单:

*本地宝石*

代码语言:javascript
复制
addressable (2.3.2)
bundler (1.2.1)
excon (0.16.7)
heroku (2.32.14)
heroku-api (0.3.5)
launchy (2.1.2)
mime-types (1.19)
netrc (0.7.7)
rack (1.4.1)
rack-protection (1.2.0)
rake (0.9.2.2)
rest-client (1.6.7)
rubygems-bundler (1.1.0)
rubyzip (0.9.9)
rvm (1.11.3.5)
shotgun (0.9)
sinatra (1.3.3)
tilt (1.3.3)

我怎样才能阻止辛纳特拉重写饼干名字。有我能做的猴子补丁吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-28 17:43:00

HTTP标头名称应不区分大小写。,所以理论上这不应该是个问题-- P3p应该和P3P一样好。

在您的例子中,头是被Webrick服务器更改,而不是Sinatra。更改到另一台服务器,比如Thin (它不会改变头)将是最简单的修复方法(使用Thin over Webrick还有其他好处)。

如果您确实需要继续使用Webrick,您可以查看修补WEBrick::HTTPResponse。您必须小心,因为Webrick将标题名称降为处理重复的标题,因此您可能不得不说明这一点。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13110708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档