O que é um servidor web?
Quando uma aplicação (cliente) necessita de um determinado recurso, ela pode solicitar o recurso através de HTTP para um servidor; o servidor que fornece o recurso é um servidor Web
;
1.2 Duas maneiras de criar um servidor
1.3 objeto de solicitação
O objeto de solicitação encapsula todas as informações passadas pelo cliente ao nosso servidor.
A URL desta solicitação, o servidor precisa realizar diferentes processamentos de acordo com
o método de solicitação desta solicitação, como GET, solicitação POST recebida. Os parâmetros e métodos de processamento são diferentes;
os cabeçalhos desta solicitação também conterão algumas informações, como informações do cliente, formato de recebimento de dados, formatos de codificação suportados, etc...
Solicitação regular:
Ao enviar uma solicitação, o cliente solicitará dados diferentes e, em seguida, diferentes endereços de solicitação serão passados. O servidor precisa dar respostas diferentes com base em diferentes endereços de solicitação.
Se o endereço de solicitação do usuário também contiver alguns parâmetros adicionais, como devemos analisá-los?
Podemos usar o módulo url.
Entre eles, o módulo url fornece ferramentas utilitárias para processamento e análise de URL
Import url const url = require('url')
Suponha que nossos dados de solicitação sejam:
O resultado da análise do URL pelo console é:
Entre eles, pathname é o último caminho que precisamos obter. Nosso objetivo é obter o nome de usuário e a senha separadamente na consulta.
Importe o módulo querystring const qs = require('querystring');
const http = require("http")const url = require('url')const qs = require('querystring')// 1. Crie um servidor const server = http .createServer((req, res) => { // Use o módulo integrado const{ pathname,query } = url.parse(req.url) if(nome do caminho === '/login'){ console.log(consulta); console.log(qs.parse(consulta)); const {nome de usuário, senha} = qs.parse (consulta) console.log(nome de usuário,senha); res.end('A solicitação termina') }});// 2. Defina o número da porta e inicie o servidor server.listen(8888,'0.0.0.0',()=>{ console.log("Servidor iniciado com sucesso~");})
Na especificação Restful (estilo de design), devemos usar diferentes métodos de solicitação para adicionar, excluir, modificar e verificar dados:
Podemos realizar diferentes processamentos julgando diferentes métodos de solicitação.
Suponha que a seguir estejam nossos dados de solicitação JSON no corpo -> Como fazer com que nosso servidor obtenha o nome de usuário e a senha?
content-type é o tipo de dados transportados nesta solicitação:
; -length: **O tamanho e comprimento do arquivo
keep-alive:
**accept-encoding: **; informar ao servidor, ao cliente O formato de compactação do arquivo suportado pelo cliente, por exemplo, arquivos js podem usar codificação gzip, correspondente a arquivos .gz
**accept:** Informa ao servidor que o cliente pode aceitar o tipo de formato de arquivo
*
;*user-agent:** Informações relacionadas ao cliente;
1.4 objeto de resposta
Se quisermos responder ao cliente com dados de resultado, podemos fazê-lo de duas maneiras:
a nota: se não chamarmos end e close, o cliente aguardará o resultado;
O código de status HTTP (código de status HTTP) é um código numérico usado para representar o status da resposta HTTP:
Categoria | Motivo Frase | |
---|---|---|
1xx | Informativo | A solicitação aceita está sendo processada |
2xx | Sucesso | A solicitação foi processada normalmente |
3xx | Redirecionamento | Ação adicional é necessária para concluir a solicitação |
4xx | Erro do cliente | Erro do cliente Erro de solicitação, o servidor não pode processar a solicitação |
5xx | Erro do servidor (erro do servidor) | Servidor erro no processamento da solicitação |
Códigos de resposta comuns:
Descrição | do código de status | Descrição | do status
---|---|---|
200 | OK | Solicitação bem-sucedida. Geralmente usado para solicitações GET e POST. |
400 | Bad | Request |
é | um | erro de sintaxe na solicitação |
do | cliente, masse | recusa a executar a solicitação |
. | ||
404 | Não encontrado | O servidor não pode processar a solicitação com base na solicitação do cliente. Solicita que um recurso (página da web) seja encontrado. Através deste código, os designers do site podem configurar uma página personalizada de “O recurso que você solicitou não foi encontrado”. |
500 | Erro interno do servidor | O servidor tem um erro interno e não pode concluir a solicitação |
503 | Serviço indisponível | . , o servidor ficará temporariamente impossibilitado de processar a solicitação do cliente. A duração do atraso pode ser incluída no código de status definido no cabeçalho Retry-After do servidor |
:
retorna informações do cabeçalho. Existem duas maneiras principais: