HTTP: 10/Março/2015
This protocol is at the center of what drives websites and Web APIs.
Registo IANA contém lista de media-types standard
Formato geral
top-level type name / [ tree. ] subtype name [ +suffix ] [ ; parameters ]
Exemplo: application/vnd.github.v3+json
Interface standard de acesso a recursos
GET
HEAD
POST
PUT
DELETE
OPTIONS
PATCH
e TRACE
É possível clientes HTTP fazerem pedidos condicionais, usando headers
If-Match
e If-NoneMatch
: baseados num representante da representaçãoIf-ModifiedSince
: baseado no tempoOs métodos HTTP podem ter as seguintes caracteristicas
São divididos em quatro tipos
Cache-Control
, Pragma
, Via
Transfer-Encoding
, Trailer
Connection
, Upgrade
, Date
Host
, Range
Authentication
Accept
, Accept-Language
, Accept-Encoding
If-Match
, If-ModifiedSince
Age
, Location
ETag
, Last-Modified
, Vary
WWW-Authenticate
Content-Type
, Content-Length
, Content-Encoding
Expires
1xx
: recebido e o processamento vai continuar2xx
: aceite, recebido e compreendido3xx
: é necessário uma acção adicional para terminar o pedido4xx
: pedido inválido, não é possível continuar5xx
: o servidor não conseguiu completar o pedido com sucessoHTTP/1.1 200 OK
Cache-Control: must-revalidate, max-age=3600
Content-Type: application/json; charset=utf-8
Last-Modified: Wed, 26 Dec 2012 22:05:15 GMT
Date: Thu, 27 Dec 2012 01:05:15 GMT
Content-Length: 183
Location
ou Content-Location
de um recurso guardadoETag
é um validador opaco de uma representaçãoIf-Match
)Quando, genericamente, fazemos Ctrl-F5 num browser é realizado um pedido HTTP usando o header Cache-Control: no-cache
para indicar que não pretendemos conteúdo cached.
As respostas servidas da cache (proxy, cache do servidor) geram resposta HTTP 304 Not Modified
.
401 Unauthorized
: quando o cliente não está autorizado
403 Forbidden
: quando o cliente está proibido
Basic
: credenciaos (utilizador e password) enviados em base64Digest
: credenciais enviadas em claro (não costuma ser usado)GET /some/private/resource HTTP/1.1
...
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="some realm"
...
GET /some/private/resource HTTP/1.1
Authorization Basic QwxpAZ125EFAedc134
...
HTTP/1.1 200 OK
...
HTTP Headers relacionados
WWW-Authenticate
: usado nas resposta para indicar que é necessário autenticação, e o mecanismo suportado.Authorization
: usado nos pedidos para enviar informação de autorização.Tipos de autenticação normalmente usados:
Basic
Oauth 2.0
Hawk