0

클라이언트가 rails 응용 프로그램으로 호출하고 http 헤더 정보없이 XML을 반환해야하는 프로젝트가 필요합니다.Http 헤더 응답을 제거합니다

의 현재 반환 :

HTTP/1.1 200 OK 
Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
Pragma: no-cache 
Expires: Fri, 01 Jan 1990 00:00:00 GMT 
Content-Type: application/xml; charset= 
X-Ua-Compatible: IE=Edge 
X-Request-Id: c5602cd7eb23ca8137bef8bb1f0a4f8a 
X-Runtime: 0.027900 
Server: WEBrick/1.3.1 (Ruby/1.9.3/2013-11-22) 
Date: Wed, 18 Jun 2014 05:27:48 GMT 
Content-Length: 529 
Connection: Keep-Alive 
Set-Cookie: _session_id=a8039d615674feec206e6c55a7a7afc8; path=/; 
HttpOnly 

<?xml version="1.0" encoding="UTF-8"?> 
<cXML> 
    <Response> 
    <Status code="200" text="OK"/> 
     <StartPage> 
    <URL>http://localhost:3000/foobar/BAh7DDoNYmFza2V0aWRJI... 
     </StartPage> 
    </Response> 
</cXML> 

누구의 도움 컨트롤러 또는 설정 내의 모든 HTTP 헤더를 제거 할 수 있습니까? 이것은 섹션 아래에 있습니다.

HTTP/1.1 200 OK 
Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
Pragma: no-cache 
Expires: Fri, 01 Jan 1990 00:00:00 GMT 
Content-Type: application/xml; charset= 
X-Ua-Compatible: IE=Edge 
X-Request-Id: c5602cd7eb23ca8137bef8bb1f0a4f8a 
X-Runtime: 0.027900 
Server: WEBrick/1.3.1 (Ruby/1.9.3/2013-11-22) 
Date: Wed, 18 Jun 2014 05:27:48 GMT 
Content-Length: 529 
Connection: Keep-Alive 
Set-Cookie: _session_id=a8039d615674feec206e6c55a7a7afc8; path=/; 
HttpOnly 

현재 Nginx를 사용하고 있습니다.

나는 정의에 의한 HTTP 서버가 헤더를 사용하여 서로 이야기하기 때문에 일종의 말도 안되는 요청이라고 말합니다. 그러나 나는 W3가 다르게 생각한다고 알려졌다.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4

나는 또한 어떤 성공없이 내 레일 컨트롤러를 변경하는 다른 솔루션을 시도하는 시간 동안 주위 봤있다. 최후의 수단은 아마도 Nginx에서 설정을 변경하고 전체 레일 어플리케이션에 영향을 미치지 않을 것이며 API 호출뿐만 아니라 하나의 호출을 단일화하는 방법입니까?

미리 감사드립니다.

답변

1

이것은 말도 안되는 요청입니다. HttpHeadersMore 모듈을 사용하여 대부분의 응답 헤더를 제거 할 수 있습니다. 이런 식으로 뭔가 그것을 수행해야합니다

location /your/api/path { 
    more_clear_headers '*'; 
} 

그러나 연결이 without patching nginx 헤더 제거 할 수 없습니다. 가능한 경우에도 첫 번째 응답 줄 (이 경우 "HTTP/1.1 200 OK")을 제거 할 수 없습니다. 이 줄이 없으면 HTTP 응답이 아닙니다. HTTP 서버가 HTTP 이외의 응답을 보내도록 설득하는 데 어려움을 겪을 것입니다.

당신이 묘사하는 것을 얻으려면 베어 메어 TCP 소켓을 통해 통신하는 사용자 지정 서버가 필요하다고 생각합니다. This tutorial가 도움이 될 수 있습니다. 또는 node.js (또는 다른 도구)에서 앱의 해당 부분을 구현할 수 있습니까?