SEO ou Search Engine Optimization.

SEO Search Engine Optimization

É o processo que usamos para melhorar a visibilidade de um site... Mais informações »

Dicas Para Blog

Dicas Para Blog

Aqui você encotra tudo sobre personalização de blog... Mais informações »

Ganhado Dinheiro

Ganhado Dinheiro

Diversas formas de ganhar dinheiro com seu site ou blog... Mais informações »

Anuncie Aqui

Anuncie Aqui

Banner aleatório fica exposto de forma dinâmica, intercalando a divulgação com outro anunciante do site... Saiba Como »

Envie sua sugestão

Envie sua sugestão

Deixe sua sugestão para que possamos melhorar ainda mais a qualidade do nosso serviço... Envie sua sugestão »

O que é, e como funciona o Http e HTTPs?

O primeiro browser! Em 1990, Tim Bernard-Lee escreveu o primeiro cliente e primeiro servidor web. Assim surgia o HTML e o HTTP, surgia a WWW e todo o universo que nos trouxe. Tim escreveu em 1991 as razões pelas quais criar um novo protocolo (o HTTP), e comentava que os até então existentes não atendiam às necessidades da comunidade científica. Por exemplo, os protocolos de e-mails permitiam apenas mensagens de um autor para um pequeno número de destinatários;
os protocolos de arquivo permitiam a transferência de dados sob o pedido do transmissor ou do receptor, mas com pouca capacidade de processamento; protocolos de notícias ainda permitiam o envio de informação massiva, e o mais interessante eram os protocolos de busca, que permitiam acesso a documentos após as buscas, mas poucos eram os que existiam.



O protocolo necessitado para acesso a informação deveria atender aos seguintes requisitos:



- Incorporação da funcionalidade do FTP;

- Habilidade de requisitar uma busca;

- Negociação automática de formato;

- Habilidade para, do cliente, referenciar outro servidor.



Como funciona?



O navegador não pode ler o documento do disco de destino diretamente, então este necessita estar rodando um "servidor web". Um "servidor web" basicamente é um programa que escuta os pedidos dos navegadores e os executa.


Pedido HTTP


O usuário digita um endereço web (URL) no seu navegador, com o seguinte formato: protocolo://servidor/pedido-URI. 


O navegador começa abrindo uma conexão TCP com o servidor (SYN).

O passo seguinte é então o navegador mandar o pedido para o servidor (DAT). Ele o faz enviando uma mensagem no seguinte formato: 

GET [diretório(URI)] [HTTP/versão]



Resposta HTTP

O servidor localiza o documento e manda a seguinte resposta (DAT):



HTTP/[ver] [código] [texto]

Campo1: valor1

Campo2: valor2



... conteúdo do documento....



Explicando os termos acima: ver é a versão do HTTP, código é um número de 3 algarismos, geralmente 200 para dizer que está tudo OK, e depois um texto que traduz o signficado deste número para uma linguagem conhecida (geralmente é o próprio "ok"). Seguem-se algumas informações usadas pelo cabeçalho, como data, tamanho do arquivo etc. Depois de uma linha em branco, vem a informação do documento propriamente.



Exemplo de cabeçalho:



HTTP/1.0 200 OK

Server: Netscape-Communications/1.1

Date: Tuesday, 25-Nov-99 01:22:03 GMT

Last-modified: Thursday, 20-Nov-99 10:44:33 GMT

Content-length: 6372

Content-type: text/html





... conteúdo do documento ... 



Os campos exemplificados são de fácil compreensão. Chamo a atenção para o chamado "content-type", que tem como valor "text/html". Este campo é o que permite ao navegador saber que tipo de documento está sendo trafegado, e, dependendo do tipo, abri-lo na própria janela, ou chamar um outro programa para fazê-lo. Outros exemplos de tipos de documento são: "text/plain" (texto puro), "image/gif" (imagem do tipo gif), "image/jpg" entre outros. 



Alguns documentos são abertos dentro de próprio documento html, como é o caso das imagens. Outros são visualizados também dentro do documento html, mas quererem um plug-in, como é o caso das animações "flash" (da Macromedia).



Um importante conceito aqui é que para o navegador não importa como o servidor produz a informação que lhe manda. Portanto, esta pode ser estática, pode ser dinâmica, pode ser gerada por um programa (cgi), processada de mil e uma maneiras, que ele não vai saber: só o que importa é saber o tipo de documento, e usar o programa ou plug-in necessário para abri-lo.



Códigos de estado do servidor



Acima vimos o exemplo do código de estado "OK", mas é interessante conhecermos os possíveis códigos que o servidor pode retornar:



1xx Não utilizado. Reservado para testes. 

2xx O pedido foi atendido corretamente. 

200 OK: o servidor fez exatamente o que o cliente queria. 

outros Geralmente usados no procesamento de scripts, muito raros. 

3xx O recurso está em algum outro lugar e o cliente deve tentar de novo em um novo endereço. 

301 Movido permanentemente. 

302 Movido temporariamente (os enlaces não necessitam ser modificados). 

304 Não modificado. Usado quando o cliente utiliza o cabeçalho "se-modificado-desde" e o recurso não foi modificado desde o tempo apontado. Significa que a versão do documento em cache deve ser exibida. 

4xx O cliente de alguma maneira se equivocou, geralmente pedindo por algo que não deveria ter pedido. 

400 Pedido errado. O pedido não tem a sintaxe correta. 

401 Não autorizado. O cliente não está autorizado a acessar o recurso. Pode mudar se o cliente tenta de novo com um cabeçalho de autorização. 
403 Proibido. O cliente não pode acessar o recurso e uma autorização não vai ajudar em nada. 
404 Não encontrado. O mais conhecido. Significa que o servidor não tem nem idéia sobre o paradeiro deste recurso e não tem nada a informar. 
5xx Significa que o servidor se equivocou ou que não pôde atender ao pedido do cliente. 
500 Erro interno do servidor. Alguma coisa aconteceu de errado no servidor. 
501 Não implementado. O método de pedido não é suportado pelo servidor. 
503 Serviço não disponível. Acontece algumas vezes quando o servidor está muito ocupado e não pode atender ao pedido. Geralmente a solução é esperar um tempo e tentar de novo. 



Versões do HTTP



HTTP/0.9 Muito primitiva... na verdade nunca foi especificada em nenhum padrão. 

HTTP/1.0 É a correção da anterior. Foi publicada como padrão no RFC 1945. Foi a versão mais utilizada durante certo tempo, dando espaço hoje para a versão 1.1. 

HTTP/1.1 Descrito na RFC 2068. Extende e melhora a versão 1.0 em certas áreas. É suportada pela maioria dos navegadores, inclusive o Internet Explorer 6.0.. 



As maiores vantagens da versão 1.1 são as extensões para autorização de documentos online via HTTP e um mecanismo que permite que após o pedido do cliente a conexão se mantenha aberta, o que evita ter que abrir uma nova conexão para o seguinte pedido. Isso é vantajoso porque agiliza a abertura de documentos que tenham outros arquivos associados. 



HTTPs 



O que é HTTPs?



HTTPs é a combinação do protocolo HTTP com o SSL (Secure Sockets Layer). É a maneira mais comum atualmente de trafegar documentos via HTTP de maneira segura. Provê encriptação de dados, autenticação de servidor, integridade de mensagem e autenticação de cliente.



O que é SSL?



O gráfico abaixo ilustra muito bem o que é o SSL (Secure Sockets Layer). É uma camada que fica entre a camada de aplicação e a camada de transporte. Foi desenvolvido pela Netscape Communications e tem a função de prover comunicação segura na internet, através da autenticação e encriptação dos pacotes entre o servidor e o cliente.



Como funciona o SSL?



Um site seguro, que usa o HTTPs, deve possuir 3 compontentes essenciais para a comunicação segura: o servidor, o software seguro (faz o trabalho de criptografia) e o certificado de assinatura (assinatura digital).



Este software seguro é proprietário, e é vendido, por exemplo, pela Verisign (a mais conhecida atualmente), por US$ 349,00. O software pode ser instalado na própria máquina do servidor, junto à assinatura digital (uma chave de 512 bits), ou pode estar em um servidor compartilhado.



As páginas que utilizam https possuem uma sutil diferença no endereço, que em vez de ser escrito com o prefixo de protocolo http é apontado por https. Este endereço https geralmente não é divulgado, mas é redirecionado a partir do site principal.



É interessante evitar utilizar páginas seguras quando não for necessário, já que essa utilização implica em um processamento a mais, que é a encriptação e a desencriptação dos dados, além de não ficarem guardadas em cache, o que significa percorrer todo o caminho entre o servidor e o cliente a cada pedido.



O HandShake



Primeiramente, o cliente envia ao servidor sua versão do SSL, configurações de cipher, informação gerada randomicamente e outras informações que o servidor precisa saber.



O sevidor envia uma resposta ao cliente com as mesmas informações.



O servidor envia então o seu certificado e pede também que o cliente envie o seu. Mas não para por aí, continua enviando, e manda sua chave pública, que será usada mais tarde para que o cliente encripte a mensagem de resposta.



O cliente usa a informação enviada pelo servidor para autenticá-lo. Assim ele garante que estará trocando dados com o servidor correto, e não outro que tenha se interposto.



Caso o certificado do cliente tenha sido solicitado, este o envia, caso contrário, envia uma mensagem de "não certificado".



Usando a informação recebida, o cliente cria a chave premaster (premaster secret) para a sessão, encripta com a chave pública do servidor e envia a premaster encriptada para o servidor.



Estando o cliente autenticado (caso fosse requerido) o servidor usa a sua chave privada para desencriptar a chave premaster, então faz uma série de procedimentos para gerar a chave mestra (master secret). O cliente repete os mesmos procedimentos e gera também a chave mestra. Eles utilizam a chave mestra para gerar as chaves de sessão (session keys), que são chaves simétricas usadas para encriptar e desencriptar informação trocada durante a sessão SSL.



Clente e servidor então trocam mensagens encriptadas avisando um ao outro que o handshake terminou e que a partir de então as mensagens trocadas estarão encriptadas com a chave de sessão.




Viu algum erro ou gostaria de adicionar uma sugestão para atualizarmos esta matéria?

Colabore com o autor clicando aqui!

Quer Ajudar?

 
Related Posts Plugin for WordPress, Blogger...