2017-11-28 3 views
0

HTTP 상태 코드를 보내는 웹 앱이 있습니다. 어떤 경우에는 404 코드가 헤더로 보내지지만 동일한 응답으로 200 오류가 전송되는 경우도 있습니다.하나의 HTTP 응답에 여러 상태 코드 헤더가 허용됩니까?

HTTP/1.0 404 Not Found 
HTTP/1.0 200 Ok 

첫 번째 상태 코드가 전송되지 않도록 실행 순서를 변경할 수 없으므로 두 번째 코드에서 우선 순위를 변경하려고합니다.

크롬은 첫 번째 코드를 무시하고 상태를 Ok으로 가정합니다. 이 표준이 HTTP 표준을 준수합니까?

+0

나는 브라우저가 http 옵션 호출을 먼저하고 http가 cors 기능을 위해 만들어 졌다고 생각한다. 서버가 주어진 URL에 http 옵션을 제공/지원하지 않으면 & # 39, 404 상태로 응답합니다. –

답변

0

는 HTTP 1.1에 대한 RFC는 여기에 주어집니다 : https://tools.ietf.org/html/rfc7230

2.1 주 : 서버가 하나 이상의 HTTP 응답 메시지, 상태의 각각의 시작을 전송하여 클라이언트의 요청에 응답

라인 ...

표준은 원하는 경우 하나 이상의 응답을 보낼 수 있지만 각 응답에는 자체 상태 줄이 있어야한다고 나와 있습니다. 또한 헤더의 첫 번째 줄에는 상태 줄/코드가 있어야합니다.

이론 상으로는 이론적으로 해석하면 하나 이상의 응답을 보낼 수는 있지만 브라우저가 어떤 역할을하는지 전혀 알지 못하며 확실히 의존하지 않을 것입니다.

현재 귀하가 가지고있는 것은 rfc를 준수하는 것입니다. rfc는 상태 표시 줄 이상을 가질 수 없다고 말하지 않으며, 각 응답의 첫 번째 줄에있는 상태 줄은 중요하며, 이는 크롬이 rfc에 따라 정확하게 해석하지 않습니다.

효과가있을 수는 있지만 사용하지 않을 것입니다.

+0

여러 응답 메시지를 보낼 수 있지만 마지막 메시지 만 최종 상태 코드 (> = 200)를 가질 수 있습니다. –

+0

여러 응답을 보내지 않고 동일한 응답의 여러 상태 헤더를 보냅니다. 바라기를 나의 질문은 지금 명확하다. –

+0

정의에 의한 응답은 하나의 상태 표시 줄 만 포함 할 수 있습니다. 두 번째 줄이 유효한 HTTP 헤더가 아니면 유효하지 않습니다. 브라우저에서 깨진 메시지를 복구하려고합니다. –

0

아니요, 표준을 따르지 않으므로 사용하지 마십시오. https://www.greenbytes.de/tech/webdav/rfc7230.html#rfc.section.5.6을 참조하십시오.

+0

내가 알 수있는 한, 이것은 단일 응답에서 여러 헤더가 아닌 동일한 연결에서 여러 요청과 응답이 이루어지는 시나리오를 나타냅니다. 내 질문을 명확하게 업데이트했습니다. –

+0

@JonathanHolvey - 아니요. 단일 요청으로 전송되는 내용입니다. –

관련 문제