HTTP
1. Introducción a HTTP
1. ¿Qué es la comunicación?
La comunicación es la transmisión y el intercambio de información. Los
tres elementos de la
comunicación : el tema de la comunicación, el contenido de la comunicación y el método de comunicación.
2. Qué protocolo de comunicación
Protocolo de comunicación (Protocolo de comunicación) se refiere a las reglas y acuerdos que ambas partes de la comunicación deben cumplir para completar la comunicación.
Comprensión popular: Las dos partes en comunicación utilizan un formato acordado para enviar y recibir mensajes. Este formato de comunicación preestablecido se denomina protocolo de comunicación.
Por ejemplo, la regla de escritura del sobre es el protocolo de comunicación.
Para realizar la transmisión de contenido web entre el cliente y el servidor, ambas partes en la comunicación deben cumplir con el protocolo de transmisión del contenido web.
El contenido web también se denomina hipertexto, por lo que el protocolo de transferencia de contenido web también se denomina Protocolo de transferencia de hipertexto (HyperText Transfer Protocol), abreviado como protocolo HTTP.
3. ¿Qué es el protocolo http?
El protocolo HTTP es el Protocolo de transferencia de hipertexto (HyperText Transfer Protocol), que especifica el formato de transmisión que se debe observar al transmitir contenido web entre el cliente y el servidor.
4. El modelo interactivo del protocolo http
http usa un modelo de interacción de solicitud / respuesta
Dos, mensaje de solicitud http
Porque el protocolo HTTP pertenece al protocolo de comunicación entre el navegador del cliente y el servidor. Por lo tanto, la solicitud iniciada por el cliente se denomina solicitud HTTP y el mensaje enviado por el cliente al servidor se denomina mensaje de solicitud HTTP, también llamado mensaje de solicitud HTTP.
1. Los componentes del mensaje de solicitud http
La solicitud de publicación se divide en 4 componentes,
línea de solicitud,
encabezado de solicitud,
línea en blanco,
cuerpo de
solicitud, solicitud de obtención, se divide en 3, sin cuerpo de
solicitud, línea de
solicitud, encabezado de solicitud,
línea en blanco
1. Línea de solicitud
La línea de solicitud consta de tres partes: método de solicitud, URL y versión del protocolo HTTP, separadas por espacios.
Formato:
//请求方式 空格 url 空格 协议版本 回车符 换行符
post /api/login HTTP/1.1
2. Encabezado de la solicitud
El encabezado de la solicitud se utiliza para describir la información básica del cliente, de modo que la información relacionada con el cliente se notifica al servidor. Por ejemplo: User-Agent se usa para describir el navegador actual;
Content-Type se usa para describir el formato de datos enviado al servidor;
Accept se usa para describir qué tipo de contenido devuelto puede recibir el cliente;
Accept-Language se usa para describir al cliente Qué tipo de contenido de texto en lenguaje humano espera recibir el final.
El encabezado de la solicitud consta de varias líneas de pares clave / valor, y la clave y el valor de cada línea están separados por dos puntos en inglés.
El formato es
campo de encabezado valor de dos puntos retorno de carro carácter de nueva línea
campos de encabezado de solicitud común
Campo de encabezado | Descripción |
---|---|
anfitrión | Nombre de dominio del servidor a solicitar |
Conexión | El modo de conexión entre el cliente y el servidor (cerrar o mantener activo) |
Largancia de contenido | Se usa para describir el tamaño del cuerpo de la solicitud. |
Aceptar | Lista de tipos de contenido de respuesta reconocidos por el cliente |
Agente de usuario | El tipo de navegador que realizó la solicitud. |
Tipo de contenido | El cliente le dice al servidor el tipo de datos realmente enviados |
Aceptar codificación | El formato de codificación de compresión de contenido que puede recibir el cliente. |
Aceptar-idioma | La prioridad del lenguaje natural que esperan los usuarios |
3. Línea en blanco
Después del último campo de encabezado de solicitud hay una línea en blanco para informar al servidor que el encabezado de solicitud ha terminado.
La línea en blanco en el mensaje de solicitud se utiliza para separar el encabezado de la solicitud del cuerpo de la solicitud.
Google Chrome es un separador
4. Cuerpo de la solicitud
Lo que se almacena en el cuerpo de la solicitud son los datos que se enviarán al servidor a través de POST.
Y obtener solicitud no tiene solicitud, solo la publicación tiene el cuerpo de la solicitud.
Es decir, los datos en Form Data, haga clic en Ver fuente para ver el cuerpo de la solicitud original.
Tres, mensaje de respuesta HTTP
1. Los componentes del mensaje de respuesta
El mensaje de respuesta consta de 4 partes: línea de estado, encabezado de respuesta, línea en blanco y cuerpo de respuesta.
1. Línea de estado
La línea de estado consta de tres partes: la versión del protocolo HTTP, el código de estado y el texto de descripción del código de estado.
HTTP/1.1 200 OK
//协议版本 状态码 描述文本
2. Encabezado de respuesta
Usado para describir la información básica del servidor, el encabezado de respuesta consta de varias filas de pares clave-valor.
Campos comunes
Puede consultar el documento del sitio web oficial de MDN para obtener una explicación detallada de los campos de respuesta
Campo | descripción |
---|---|
X-Powered-By: Express | Campos personalizados, decirle al navegador qué software utilizo |
Acceso-Control-Permitir-Origen: * | |
Tipo de contenido: aplicación / json; juego de caracteres = utf-8 | Dile al cliente en qué formato de datos te estoy respondiendo |
Longitud del contenido: 68 | ¿Cuál es la longitud de los datos de respuesta? |
ETag: W / '' 44-nt / y6yOFj7H04EVW1DWBIMG + Pq0 | |
Fecha: miércoles, 27 de noviembre de 2019 02:13:24 GT | Tiempo de respuesta |
Conexión: mantener vivo |
3. Línea en blanco
Solo se usa para separar el encabezado de la respuesta y el cuerpo de la respuesta.
4. Cuerpo de respuesta
¿Es el contenido de respuesta almacenado?
En respuesta
Cuatro, método de solicitud HTTP
Método de solicitud | descripción |
---|---|
OBTENER | Consulta, envía una solicitud para obtener recursos en el servidor, el cuerpo de la solicitud no contendrá los parámetros solicitados y los datos de la solicitud se colocan en el encabezado del protocolo. |
CORREO | Nuevo, envíe recursos al servidor, envíe formularios o cargue archivos, los datos se incluyen en el cuerpo de la solicitud y se envían al servidor |
PONER | Envíe recursos al servidor y utilice los nuevos recursos enviados para reemplazar los recursos antiguos correspondientes al servidor. |
ELIMINAR | Solicitar al servidor que elimine el recurso especificado |
CABEZA | El encabezado solicita una respuesta que es la misma que la respuesta de la solicitud de obtención, pero no hay un cuerpo de respuesta |
OPCIONES | Obtenga el método de solicitud http admitido por el servidor http, lo que permite al cliente ver el rendimiento del servidor, como la verificación previa cuando ajax entre dominios, etc. |
CONECTAR | Establecer un túnel al servidor identificado por el recurso de destino |
RASTRO | Realice una prueba de bucle invertido de mensajes a lo largo de la ruta del recurso de destino, principalmente para pruebas o diagnóstico |
PARCHE | Es un complemento del método put, que se utiliza para actualizar localmente los recursos conocidos. |
Cinco, código de estado de respuesta
También es parte del protocolo HTTP. El
código de estado de respuesta utilizado para identificar la respuesta se enviará al navegador del cliente junto con el mensaje de respuesta. El navegador puede saber que el resultado de esta solicitud es exitoso de acuerdo con el código de estado de respuesta devuelto. por el servidor. Aún falló
1. La composición y clasificación de los códigos de situación
El código de estado se compone de tres dígitos decimales. El primer dígito decimal define el tipo de código de estado y los dos últimos dígitos se utilizan para subdividir el
código de estado. Hay 5 tipos de códigos de estado.
clasificación | Descripción de clasificación |
---|---|
1 ** | El comienzo de 1 es que el servidor recibe la solicitud y requiere que el solicitante continúe realizando la operación, que rara vez se usa en la práctica. |
2 ** | Éxito, la operación se recibió y se procesó correctamente |
3 ** | Redirigir, se requieren más acciones para completar la solicitud |
4 ** | Error de cliente, error de sintaxis de solicitud o no se puede completar la solicitud |
5 ** | Error del lado del servidor, el servidor encontró un error al procesar la solicitud. |
2.2 Código de estado de respuesta al principio
código de estado | Descripción inglesa | Descripción china |
---|---|---|
200 | OK | La solicitud es exitosa, generalmente se usa para obtener o publicar solicitudes |
201 | Creado | Creó, solicitó y creó con éxito un nuevo recurso, generalmente utilizado para pos o solicitudes de colocación |
3.3 Código de estado de redireccionamiento al principio
código de estado | Descripción inglesa | Descripción china |
---|---|---|
301 | Movido permanentemente | Movido permanentemente, el recurso solicitado se ha movido permanentemente a la nueva URL, la información devuelta incluye la nueva URL, el navegador dirigirá automáticamente la nueva URL y cualquier nueva solicitud en el futuro debe ser reemplazada por la nueva URL. |
302 | Encontró | Movimiento temporal, similar al 301, pero el recurso solo se mueve temporalmente, el cliente debe continuar con la URL original |
304 | No modificado | Sin modificar, el recurso solicitado no se ha modificado. Cuando el servidor devuelve este código de estado, no devolverá ningún recurso. El mensaje de respuesta no contiene el cuerpo de la respuesta. El cliente generalmente almacena en caché los recursos accedidos |
4.4 Código de estado al principio
código de estado | Descripción inglesa | Descripción china |
---|---|---|
400 | Solicitud incorrecta | 1.语义有误,当前请求无法被服务器理解,除非进行修改,否则客户端不应该重复提交这个请求。 |
401 | Unauthorized | 当前请求需要用户验证 |
403 | Forbidden | 服务器已经理解请求,但是拒绝执行它 |
404 | Not Found | 服务器无法根据客户端的请求找到资源 |
408 | Request Timeout | 请求超时,服务器等待客户端发送的请求时间过长,超时。 |
5.以5开头的状态码
状态码 | 英文描述 | 中文描述 |
---|---|---|
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持该请求方法,无法完成请求,只有get和head请求方法是要求每个服务器必须支持的,其他请求方法不支持的服务器上会返回501 |
500 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求 |