Want-Digest
O cabeçalho HTTP Want-Digest é primordialmente usado em uma requisição HTTP, para pedir ao respondedor para prover uma digestão (digest) do recurso requisitado usando o cabeçalho de resposta Digest.
O cabeçalho contém identificadores para um ou mais algoritmos de digestão que o remetente deseja que o respondedor use para criar a digestão. O remetente pode usar valores de qualidade para indicar sua preferência ordenando dentre as escolhas que ele oferece.
Se Want-Digest não inclui nenhum algoritmo de digestão que aquele servidor suporta, o servidor pode responder com:
- uma digestão calculada usando outro algoritmo de digestão, ou
- um erro
400 Bad Request, e inclui outro cabeçalhoWant-Digestcom a resposta, listando os algoritmos que ele suporta.
Veja a página do cabeçalho Digest para mais informações.
| Tipo de cabeçalho | General header |
|---|---|
| Forbidden header name | não |
Sintaxe
Want-Digest: <digest-algorithm> // Múltiplos algoritmos, pesados com a sintaxe de qualidade de valor: Want-Digest: <digest-algorithm><q-value>,<digest-algorithm><q-value>
Diretivas
<digest-algorithm>-
Algoritmos de digestão suportados são definidos na RFC 3230 e RFC 5843, e inclui
SHA-256eSHA-512. Alguns algoritmos suportados, incluindounixsumeMD5são sujeitos a colisões e não são apropriados para aplicações em que resistência à colisão é importante. <q-value>-
O valor de qualidade para aplicar aquela opção.
Exemplos
Want-Digest: sha-256 Want-Digest: SHA-512;q=0.3, sha-256;q=1, md5;q=0
Operação básica
O remetente provém a lista de digestões que ele está preparado para aceitar, e o servidor usa um deles:
Request: GET /item Want-Digest: sha-256;q=0.3, sha;q=1 Response: HTTP/1.1 200 Ok Digest: sha-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=
Digestões não suportadas
O servidor não suporta nenhum do algoritmos de digestão requisitados, então ele usa um algoritmo diferente:
Request: GET /item Want-Digest: sha;q=1 Response: HTTP/1.1 200 Ok Digest: sha-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=
O servidor não suporta nenhuma dos algoritmos de digestão requisitados, então responde com um erro 400 e inclui outro cabeçalho Want-Digest, listando os algoritmos que ele suporta:
Request: GET /item Want-Digest: sha;q=1 Response: HTTP/1.1 400 Bad Request Want-Digest: sha-256, sha-512
Especificações
| Especificação | Título |
|---|---|
| draft-ietf-httpbis-digest-headers-latest | Resource Digests for HTTP |
Este cabeçalho foi originalmente definido na RFC 3230, mas a definição de "representação selecionada" na RFC 7231 fez a definição original ficar inconsistente com as atuais especificações HTTP. Quando lançado, o rascunho "Digestões de Recursos para HTTP" tornará a RFC 3230 obsoleta e vai atualizar o padrão para ficar consistente.