Estudar a Implementação do HTTP no Navegador Google Chrome
Por: Affinha • 18/5/2016 • Relatório de pesquisa • 573 Palavras (3 Páginas) • 345 Visualizações
Relatório de Atividades Semanal
Objetivo das Atividades:
Estudar a implementação do HTTP no navegador Google Chrome, para que possa ser feita uma modificação que utilize a REPI.
Resumo:
Nas última 3 semanas continuei descrevendo as funções do HTTP no código fonte do Google Chrome. Nessa semana, percebemos o quão complexo é a implementação do HTTP no navegador, principalmente se tratando do confuso uso de sockets. A ideia agora, é tentar usar um programa simples que faça uso do HTTP (algo como um navegador pequeno, com o conjunto de métodos um pouco reduzido), que faça ao menos um requisição de um HTML ao servidor, e que obtenha esse HTML como resposta, para depois substituir sua chamadas ao socket TCP, por uma chamada REPI. Feito isso poderemos então ter uma confirmação do funcionamento do HTTP utilizando a REPI, e uma melhor direção para retornar ao funcionamento do Google Chrome.
Material Utilizado:
Continuo utilizando o código fonte do navegador Google Chrome, e as definições do HTTP/1.1 (RFC 2616). O código fonte do chrome e as definições do HTTP, podem ser encontradas, respectivamente, nos seguintes links: http://codesearch.google.com/#OAMlx_jo-ck/src/chrome/
http://datatracker.ietf.org/doc/rfc2068/?include_text=1
Desenvolvimento da Atividade:
Nessas últimas semanas continuei utilizando a mesma estratégia descrita no último relatório. Com exceção da última, que o foco começou a ser a busca somente, pelos arquivos códigos fonte que contivessem alguma chamada a qualquer tipo de socket (foi quando percebemos a complexidade da implementação do HTTP no navegador).
Abaixo estão os códigos avaliados nas últimas semanas.
Vermelho - Não está definido na pasta /net/http, mas necessita da minha compreensão.
Preto - Contrário
host_port_pair -
Classe que contém com atributo, o par host e port. Um dos métodos tem como entrada uma URL, consultando portanto o servidor de DNS para atribuir a essa URL um endereço de IP. (Não sei direito porque coloquei o mesmo nessa lista, mas caso seja incluído em algum arquivo novamente essa descrição pode ser útil.)
des
Contém os métodos de criptografia DES (data encryption standard). (Falta entender em quem essa criptografia é usada)
disk_cache_based_ssl_host_info
Aparentemente, tem haver com sistema de segurança. Ao longo da vizualização da pasta /net melhoro sua descrição. Pelo visto faz uso do TCP.
http_alternate_protocols
Por hora o conceito parece meio nebuloso. Tem haver com SPDY, um protocolo alternativo, na camada de aplicação, que possui latência melhor que o http. Utiliza a classe host_port_pair, com o ip do host e o número da porta utilizada pelo protocolo.
http_alternate_protocols_unittest.cpp
Testa a de cima.
http_atom_list.h
...