QCon – HTTP Status Report
Essa foi uma palestra bastante pesada feita por Mark Nottingham, que trabalha no Yahoo! desenvolvendo e traçando estratégias para uso de web services RESTful, além de ser proponente e participante de especificações, como Atom, stale-if-error e stale-while-revalidate.
Ao longo de uma hora ele passou por diversos temas relacionados ao estado do HTTP hoje. Começou comentando sobre o grupo de trabalho Hypertext Transfer Protocol Bis, que visa revisar a RFC 2616 (que especifica o HTTP 1.1) para torná-la mais clara, evitando problemas de interpretação que costumam ocorrer em implementações. Deixou claro que o grupo não deve adicionar nada à especificação, apenas organizá-la melhor. O protocolo foi separado em sete partes, e cada uma delas possui um documento próprio, ainda em draft: URIs, Connections, and Message Parsing, Message Semantics, Message Payload and Content Negotiation, Conditional Requests, Range Requests and Partial Responses, Caching e Authentication. Em teoria os trabalhos acabam em seis meses.
Depois disso, Mark Nottingham falou sobre o estado atual e perspectivas de vários tópicos, como o estado de implementação atual de clientes, servidores e intermediários, e especificações e implementações relacionadas a URIs, headers, caching, etc.
Ainda falou sobre o draft para a especificação de PATCH, um novo método a ser adicionado no HTTP 1.1. Por sinal, com o uso cada vez mais disseminado de arquiteturas orientadas a recursos, esse método faz cada vez mais sentido, e foi comentado mais duas vezes na track de REST do evento. A questão é que um PUT implica em mandar todas as informações sobre o recurso novamente para o servidor, o que muitas vezes é pouco prático e ineficiente.
Ao final, fez alguns comentários sobre o que chamou de O2.0, que são os padrões abertos de segurança que surgiram nos últimos tempos, como OpenID e OAuth. A crítica que fez a eles foi a de que costumam se alinhar com o mínimo denominador comum de tecnologias existentes e que costumam simplificar excessivamente algumas questões de arquitetura, como ignorar a existência de intermediários, por exemplo.