Mencionamos anteriormente que um servidor HTTP não tem estado, o que simplifica o projeto do servidor e
vem permitindo que engenheiros desenvolvam servidores Web de alto desempenho que podem manipular milhares de conexões TCP simultâneas. No entanto, é sempre bom que um site Web identifique usuários, seja porque
o servidor deseja restringir acesso de usuário, seja porque quer apresentar conteúdo em função da identidade do
usuário. Para essas finalidades, o HTTP usa cookies. Cookies, definidos no RFC 2965, permitem que sites monitorem seus usuários. Hoje, a maioria dos sites Web comerciais utiliza cookies.
Como ilustrado na Figura 2.10, a tecnologia dos cookies tem quatro componentes: (1) uma linha de cabeçalho de cookie na mensagem de resposta HTTP; (2) uma linha de cabeçalho de cookie na mensagem de requisição
HTTP; (3) um arquivo de cookie mantido no sistema final do usuário e gerenciado pelo browser do usuário; (4)
um banco de dados de apoio no site Web. Utilizando a Figura 2.10, vamos esmiuçar um exemplo de como os
cookies são usados. Suponha que Susan, que sempre acessa a Web usando o Internet Explorer de seu PC, acesse o
Amazon.com pela primeira vez, e que, no passado, ela já tenha visitado o site da eBay. Quando a requisição chega
ao servidor Web da Amazon, ele cria um número de identificação exclusivo e uma entrada no seu banco de dados
de apoio, que é indexado pelo número de identificação. Então, o servidor Web da Amazon responde ao browser
de Susan, incluindo na resposta HTTP um cabeçalho Set-cookie: que contém o número de identificação. Por
exemplo, a linha de cabeçalho poderia ser:
Set-cookie: 1678
Quando recebe a mensagem de resposta HTTP, o browser de Susan vê o cabeçalho Set-cookie: e, então,
anexa uma linha ao arquivo especial de cookies que ele gerencia. Essa linha inclui o nome de hospedeiro do servidor e seu número de identificação nesse cabeçalho. Observe que o arquivo de cookie já possui um entrada para o
eBay, uma vez que Susan já visitou esse site no passado. Toda vez que Susan requisita uma página Web enquanto
navega pelo site da Amazon em questão, seu browser consulta seu arquivo de cookies, extrai seu número de
identificação para esse site e insere na requisição HTTP uma linha de cabeçalho de cookie que inclui o número
de identificação. Especificamente, cada uma de suas requisições HTTP ao servidor do site de comércio eletrônico
inclui a linha de cabeçalho:
Cookie: 1678
Dessa maneira, o servidor da Amazon pode monitorar a atividade de Susan e, embora não saiba necessariamente que o nome dela é Susan, sabe exatamente quais páginas o usuário 1678 visitou, em que ordem e em que
horários! Então, a Amazon pode utilizar cookies para oferecer um serviço de carrinho de compra — a Amazon
pode manter uma lista de todas as compras de Susan, de modo que ela possa pagar por todas elas ao mesmo
tempo, no final da sessão.
Se Susan voltar ao site, digamos, uma semana depois, seu browser continuará a inserir a linha de cabeçalho Cookie: 1678 nas mensagens de requisição. A Amazon pode recomendar produtos a Susan com base
nas páginas Web que ela visitou na Amazon anteriormente. Se ela também se registrar no site — fornecendo
seu nome completo, endereço de e-mail, endereço postal e informações de cartão de crédito — a Amazon
pode incluir essas informações em seu banco de dados e, assim, associar o nome de Susan com seu número de
identificação (e com todas as páginas que ela consultou em suas visitas anteriores). É assim que a Amazon e
outros sites de comércio eletrônico oferecem “compras com um só clique” — quando quiser comprar um item
durante uma visita subsequente, Susan não precisará digitar novamente seu nome, número de seu cartão de
crédito, nem endereço.
Essa discussão nos mostrou que cookies podem ser usados para identificar um usuário. Quando visitar um
site pela primeira vez, um usuário pode fornecer dados de identificação (possivelmente seu nome). No decorrer
das sessões subsequentes, o browser passa um cabeçalho de cookie ao servidor durante todas as visitas subsequentes ao site, identificando, desse modo, o usuário ao servidor. A discussão também deixou claro que cookies
podem ser usados para criar uma camada de sessão de usuário sobre HTTP sem estado. Por exemplo, quando
um usuário acessa uma aplicação de e-mail baseada na Web (como o Hotmail), o browser envia informações de
cookie ao servidor que, por sua vez, identifica o usuário por meio da sessão do usuário com a aplicação.
Embora cookies frequentemente simplifiquem a experiência de compra pela Internet, continuam provocando
muita controvérsia porque também podem ser considerados como invasão da privacidade de um usuário. Como
acabamos de ver, usando uma combinação de cookies e informações de conta fornecidas pelo usuário, um site
Web pode ficar sabendo muita coisa sobre esse usuário e, potencialmente, vender o que sabe para algum terceiro.
O Cookie Central [Cookie Central, 2008] inclui informações abrangentes sobre a controvérsia dos cookies.
Comentários
Postar um comentário