[Processo] http pedido HTTP

O navegador envia um processo de solicitação HTTP

Browser, digite a URL: http: //www.baidu.com, depois que medidas serão concluídas?

1, os pedidos de construção

Em primeiro lugar, construir um navegador linha de solicitação foi construído através do bom, o navegador está pronto para iniciar uma solicitação de rede.

GET /index.html HTTP1.1

2, pesquisa de cache

Antes de realmente iniciar uma solicitação de rede, o navegador tem que primeiro verificar se o arquivo solicitado no cache do navegador. Entre eles, o cache do navegador é uma cópia armazenada localmente do recurso, a tecnologia para uso direto quando o próximo pedido .

Quando um navegador solicita uma descoberta recurso já existe no cache do navegador cópias lá, ele irá interceptar a solicitação e retornar uma cópia do final da solicitação de recursos. Se a pesquisa de cache falhar, o acesso ao pedido de rede. Seria benéfico:

  • Aliviar o stress do servidor, melhorar o desempenho
  • Para o site, o cache é atingir uma parte importante da carga de recursos rapidamente, reduzindo o tempo para recursos adquirir.

3, pronto para endereços IP e portas

Nós preparado anteriormente pelo princípio do conhecimento e também aprender sobre a relação entre HTTP e TCP. Navegador usando protocolo HTTP como o protocolo de camada de aplicação usada para pacote de solicitação de informações de texto , usando TCP / IP como protocolo de transporte para enviá-lo à rede, por isso antes de trabalho começa HTTP, necessidades navegador para estabelecer uma conexão com o servidor via TCP . Esse conteúdo HTTP é conseguida através da transmissão de dados fase de TCP.

TCP e relacionamento HTTP diagrama:

 

 Assim, podemos saber que é estabelecer uma solicitação HTTP para a rede, para obter o endereço IP resolvido através de URL e informações de porta para estabelecer conexões de servidor e TCP . Nós anteriormente "protocolo TCP" quando se trata do pacote de dados para o lado de recepção são transmitidos através do endereço IP. E o nosso endereço do site é geralmente o nome de domínio, o nome de domínio e necessidade de endereços IP para fazer relação de mapeamento, que o sistema de resolução de endereço IP " sistema de nome de domínio (DNS) " para resolver o endereço IP, número de porta e obter a correspondente ligação obter a pré-estabelecidos condições. Em outras palavras, o DNS solicitações do navegador retorna o nome de domínio IP correspondente, eo pedido irá consultar cache de dados DNS quando o serviço DNS, para determinar se o nome de domínio foi resolvido, se a consulta é analisada diretamente, para obter o IP depois de ser determinado se o URL especifique o número da porta, não o protocolo HTTP quando a porta padrão 80.

 

4, à espera de fila TCP

Chrome tem um mecanismo para o mesmo nome de domínio simultaneamente única criar até seis conexão TCP , se existem 10 pedidos ocorrem ao mesmo nome de domínio, dos quais quatro pedidos estão na fila para entrar no estado, realizada até que o pedido seja concluída. Claro que, se o número atual de solicitações é inferior a 6, ele irá diretamente para a próxima etapa, para estabelecer uma conexão TCP.

5, para estabelecer uma conexão TCP

Após a espera fila para o fim, e implementação TCP servidor "three-way handshake" (protocolo TCP anteriormente descrito), ou seja, o cliente eo servidor envia três pacotes para confirmar a conexão, conexão para realizar o navegador e serviços.

6, transmite uma solicitação HTTP

Assim que a conexão TCP é estabelecida, o browser eo servidor podem se comunicar. Os dados são transmitidos na comunicação HTTP neste processo.

HTTP formato de solicitação de dados:

 

 

 

Primeiro, o navegador envia para o servidor linha de solicitação , que inclui um método de solicitação, pedido URI protocolo (Uniform Resource Identifier) e HTTP versão .

Existem maneiras em que a solicitação GET, POST, PUT, DELETE, etc., que são comumente usados para POST vai enviar alguns dados para o servidor, tais como visitar o site para enviar informações do usuário para o servidor, geralmente esses dados passarão a solicitação corpo enviado.

Depois que o navegador envia uma linha de comando pedido, mas também para enviar algumas informações adicionais para formulário de solicitação de cabeçalhos, algumas informações básicas sobre o navegador informa ao servidor. Por exemplo, ele contém o sistema operacional, as informações do kernel navegador como o navegador que você está usando, e as informações de nome de domínio sobre a solicitação atual, Cookie e assim por diante.

 

 

 

HTTP solicita fluxo de processamento do lado do servidor

1, pedido de devolução

onda -i https: // www.baidu.com/

Por ferramenta de onda (ou painel de rede), podemos entender o formato de dados servidor retorna:

 

 

 

Primeiro, o servidor retorna uma linha de resposta , incluindo a versão de protocolo e código de status.

Se ocorrer um erro, o servidor passará a solicitação linha de código de status para retornar o resultado de processamento, por exemplo:

  • O código de status mais comum 200 que indica o sucesso do tratamento;
  • 404 página não encontrada
  • 500, indicando que o erro do servidor

Como o navegador enviará o pedido juntamente com o cabeçalho de solicitação, o servidor irá enviar uma resposta cabeçalhos junto com a resposta para o navegador. cabeçalho de resposta contém algumas informações do próprio, servidor, como um tempo de geração de dados servidor retorna, tipo de dados (JSON, HTML, streaming tipo de mídia) é devolvida, o servidor eo cliente para salvar informações como Cookie.

Após a primeira resposta, o servidor envia um corpo de resposta de dados, geralmente ele contém o conteúdo HTML real. A descrição acima é o processo navegador responde servidor.

2. Desligue

Assim que o cliente retorna para os dados da solicitação do servidor, é necessário fechar a conexão TCP. No entanto, se o navegador ou servidor para entrar em suas informações de cabeçalho:

Connection: Keep-Alive

Depois de enviar a conexão TCP permanece aberta, de modo que o navegador pode continuar a enviar o mesmo pedido de conexão TCP. Para manter conexões TCP requerem tempo para estabelecer conexões podem ser omitidos quando a próxima solicitação, para aumentar a velocidade de carregamento de recursos. Se uma página é incorporado imagens são do mesmo site, você pode inicializar uma conexão persistente multiplexação para reduzir a conexão TCP.

3, redirecionamento

E retorna um linhas de cabeçalho de resposta de resposta de redirecionamento:

 

 301 do estado é dizer ao navegador, eu preciso redirecionar para outra URL, é a necessidade de URLs de redirecionamento incluído no campo Localização no cabeçalho de resposta e, em seguida, obter o endereço do campo navegador Localização e usar esse endereço novamente navegação, que é um redirecionamento completo do processo de implementação.

resumo

Http pedido através do processo completo, sabemos que o processo de solicitação DNS lentamente e os recursos da página são armazenados em cache cache do navegador até reduzir solicitação de recurso para o servidor, por isso, quando o site será mais uma vez pedidos será mais rápido.

Navegador recursos de processamento de cache:

 

 

Como pode ser visto a partir da figura do primeiro pedido, quando o servidor retorna o cabeçalho de resposta HTTP para o navegador, o navegador é em resposta Cache-Control campo de cabeçalho para definir se para armazenar em cache o recurso . Em geral, nós também precisamos definir o período de tempo que um cache de recursos expira, e este é um longo tempo por Max-age parâmetro Cache-Control no conjunto.

Portanto, no caso dos recursos de cache que ainda não expirou, se o recurso for solicitado novamente, os recursos diretamente para o cache do navegador.

Se o cache expirar, o navegador continuará a iniciar solicitações de rede, ea fita de cabeçalho If-None-Match solicitação HTTP , se o servidor de recursos recebe o cabeçalho de solicitação, o pedido será julgado com base no valor do If-None-Match para atualizações.

  • Se não houver atualização, retorna um código de 304 status, o servidor equivalente dizer ao navegador, o cache pode continuar a usar.
  • Se o recurso for atualizado, o servidor retorna as últimas recursos diretamente para o navegador.

Cordas visita o site, enviar informações para o servidor através do método POST. Depois que o servidor recebe as informações enviadas pelo navegador, consulta as informações de autenticação de identidade do usuário é a superfície correta é resposta escrita gerado Set-Cookie campo de cabeçalho de volta para o navegador.

Navegador analisa o cabeçalho de resposta, se o campo Set-Cookie é armazenado localmente quando o usuário acessa novamente, antes de um HTTP solicitação navegadores ler e dados de solicitação de gravação cabeçalhos cookie para o servidor, a determinação informações do servidor novamente, se correta o show status de usuário e informações de login do usuário.

Finalmente, resumiu o navegador para iniciar solicitações HTTP a partir do final experimentou um total de oito etapas: pedidos de construir, procurar o cache, pronto IP e porta, fila TCP esperando para estabelecer uma conexão TCP, envia uma solicitação HTTP, o servidor processa a solicitação, o servidor retorna o solicitado e desligue .

Detalhes HTTP processo de pedido:

 

 Transferência - https://cloud.tencent.com/developer/article/1574325

Acho que você gosta

Origin www.cnblogs.com/july-sunny/p/12628874.html
Recomendado
Clasificación