Pergunta

Não são muitas maneiras de escrever um cabeçalho HTTP-status:

HTTP/1.1 404 Not Found
Status: 404
Status: 404 Not Found

mas que é a forma semanticamente correto e especificação compatível?

Edit: por cabeçalhos de status I média este , usando uma função tais como header() do PHP.

Foi útil?

Solução 3

A coisa mais próxima que eu encontrei para uma resposta é o fast CGI especificação , que estados para definir códigos de status através de cabeçalhos de estado e localização.

Outras dicas

Adicionando algumas informações, algum tempo depois, já me deparei com esta questão, enquanto pesquisando algo relacionado.

Eu acredito que o campo de cabeçalho de status foi originalmente inventado como parte da especificação CGI, RFC 3875:

https://tools.ietf.org/html/rfc3875#section- 6.3.3

Para citar:

The Status header field contains a 3-digit integer result code that
indicates the level of success of the script's attempt to handle the
request.

   Status         = "Status:" status-code SP reason-phrase NL
   status-code    = "200" | "302" | "400" | "501" | extension-code
   extension-code = 3digit
   reason-phrase  = *TEXT

Ela permite que um script CGI para retornar um código de status para o servidor web que substitui o padrão visto na linha de status HTTP. Normalmente, o servidor buffers o resultado do script e emite um novo cabeçalho para o cliente. Este é um cabeçalho HTTP válida, que se inicia com uma linha de status HTTP alterada e omite os scripts de "Status:" cabeçalho campo (mais algumas outras transformações mandatado pelo RFC)

.

Assim, todos os seus exemplos são válidos a partir de um script CGI , mas apenas o primeiro é realmente válido em um cabeçalho HTTP. Os dois últimos são válidos apenas vindo de um script CGI (ou talvez um aplicativo FastCGI).

Um script CGI também pode operar em modo "cabeçalho não analisado" (NPH), quando se gera um completo e válido cabeçalho HTTP que o servidor web passa para o cliente textualmente. Como tal, este não deve incluir um Status: campo de cabeçalho

.

Note, o que me interessa é o que o estado deve ganhar se um script NPH recebe-lo um pouco errado e emite o Status: cabeçalho campo, possivelmente para além da linha de status HTTP. Não consigo encontrar qualquer indicação clara por isso e eu suspeito que é deixado para a aplicação do que foi analisando a saída, o cliente ou o servidor.

Desde http://tools.ietf.org/html/rfc2616#section-6 e mais especificamente http://tools.ietf.org/html/rfc2616# seção-6.1 não menciona uso de "status:" quando indicando um código de status, e uma vez que a lista oficial de cabeçalhos em http://www.iana.org/assignments/message-headers/message-headers.xml não menciona "status", eu estaria inclinado a acreditar que não deve ser servido com ele como um cabeçalho.

Muitos deles são cadeias praticamente arbitrárias, mas há aqui é especificação do W3C para os mais comumente usados ??

http://www.w3.org/Protocols/rfc2616/rfc2616 -sec14.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top