Decodificador de mensagens HTTP
Cole uma requisição ou resposta HTTP/1.1 bruta e leia-a decodificada: a linha de requisição ou de status contra os registros da IANA, cada campo arquivado sob a parte da especificação que o define, a decisão de enquadramento que a RFC 9112 toma para o corpo (qual das oito regras se aplica, Content-Length contra os bytes presentes, Transfer-Encoding sobrepondo-o, os chunks decodificados um a um com os trailers), e as credenciais e cookies que a mensagem carrega, expostos e mascarados. A metade que só decodifica do inspetor de um proxy de interceptação: nunca envia, repete nem altera.
Web e HTTPUma resposta. Nenhum achado nos pontos que o decodificador verifica.
17 linhas, 3 linhas de campo, fins de linha CRLF, 83 octetos de corpo.
A linha de status
- Versão
HTTP/1.1- Código de status
2002xx sucesso o registro o chama OK (RFC9110)- Frase de razão
OK
Como o corpo é enquadrado (RFC 9112, seção 6.3)
Regra 4: há um campo Transfer-Encoding. Com chunked como codificação final, o corpo termina onde os chunks dizem; numa resposta com outra codificação final, termina quando o servidor fecha; numa requisição, o servidor responde 400.
- O corpo termina por
- a codificação chunked
- Content-Length
- ausente
- Transfer-Encoding
chunked- Corpo colado
- 83 octetos (UTF-8)
3 chunks
| # | linha | tamanho | extensões | dados (primeiros 80 caracteres) |
|---|---|---|---|---|
| 1 | 6 | 4 = 4 | · | Wiki |
| 2 | 8 | 5 = 5 | · | pedia |
| 3 | 10 | E = 14 | · | in\r\n\r\nchunks. |
O último chunk (tamanho 0) está presente. Conteúdo decodificado: 23 octetos. Campos trailer: Expires: Wed, 21 Oct 2015 07:28:00 GMT.
Wikipedia in\r\n\r\nchunks.3 campos, pelo que servem
Enquadramento (RFC 9112)
Transfer-Encoding:chunkedlinha 3 RFC 9112, Section 6.1: HTTP Semantics
Metadados da mensagem (RFC 9110, seção 6)
Trailer:Expireslinha 4 RFC 9110, Section 6.6.2: HTTP Semantics
Representação e conteúdo (RFC 9110, seção 8)
Content-Type:text/plainlinha 2 RFC 9110, Section 8.3: HTTP Semantics
Continue com
A mensagem, com as linhas marcadas
O decodificador lê a mensagem como texto e nunca a envia. As contagens de octetos são contagens UTF-8 do texto colado, então um corpo com conteúdo binário ou outro charset mede diferente no fio. O esquema da URL de uma requisição não está numa mensagem HTTP/1.1 (http é presumido), e se uma resposta responde a um HEAD não se sabe só pela resposta. Os valores dos campos aparecem como escritos; só credenciais e cookies são mascarados. Os fatos vêm da RFC 9112, RFC 9110, RFC 9111, dos registros da IANA, do rfc6265bis-22, da RFC 7617 e da RFC 6648, citados em Fontes.
Referências
- RFC 9112: HTTP/1.1 (message format, request line, status line, field syntax, obsolete line folding, Transfer-Encoding, Content-Length, message body length, chunked transfer coding)
- RFC 9110: HTTP Semantics (field names, field order, field values, HTTP-date, Host, Connection, Content-Length, safe and idempotent methods, authentication, status code classes)
- RFC 9111: HTTP Caching (Age, Cache-Control, Expires, Pragma deprecated, Warning obsoleted)
- IANA: Hypertext Transfer Protocol (HTTP) Field Name Registry (permanent, deprecated and obsoleted rows)
- IANA: Hypertext Transfer Protocol (HTTP) Status Code Registry
- draft-ietf-httpbis-rfc6265bis-22: Cookies: HTTP State Management Mechanism (the registry's reference for Cookie and Set-Cookie)
- RFC 7617: The 'Basic' HTTP Authentication Scheme
- RFC 6648 (BCP 178): Deprecating the X- Prefix and Similar Constructs in Application Protocols