[Red informática] Sitio de prueba de entrevistas HTTP

Punto de prueba 1: capas de redes informáticas, la capa de aplicación http es la más cercana a los programadores de Java

Punto de prueba 1: capas de red de computadoras. El http de la capa de aplicación es la capa más cercana a los programadores de Java.
Sabíamos cuando aprendimos sobre redes de computadoras. Dividimos la red de computadoras en 5 capas. Generalmente usamos TCP / IP ahora. Una estructura tan estratificada.
Aunque lo oficial es la estructura de 7 capas propuesta por ISO, es solo una base teórica. De hecho, la mayoría de la gente usa la estructura en capas de TCP / IP. En
primer lugar, primero debemos saber, ¿por qué tenemos que dividir la red de computadoras en capas? ? ?
Porque si dos computadoras pueden comunicarse entre sí, es muy difícil operar en la práctica ... Nuestro propósito de superposición es simplificar problemas difíciles, y si colocamos capas, solo podemos prestarnos atención cuando la usamos. Es necesario prestar atención al nivel, independientemente de otros niveles.
Si necesitamos cambiar el diseño, solo necesitamos reemplazar la capa cambiada sin involucrar otras capas. Este es un concepto con poco acoplamiento en nuestra programación.

Organización del idioma de la entrevista: el protocolo HTTP se encuentra en la capa superior, es decir, la capa de aplicación. Este es el nivel más cercano a los programadores de Java.
Desde el nivel de la red informática, los programadores de Java deben aprender HTTP, HTTPS, DNS, SSL / TLS y simetría. Cifrado y cifrado asimétrico
Luego, el protocolo de enlace de tres vías TCP / UDP en la capa de transporte, seguido de cuatro manos agitadas, y
luego el protocolo IP de la capa de red, el protocolo ARP, la dirección IP y la dirección Mac nuevamente,
luego la capa de enlace de datos y la capa física, básicamente nada utilizar.

Truco 1: el protocolo HTTP está en la capa superior, que es la capa de aplicación. Este es el nivel más cercano a nuestros programadores.
Truco 2: http + ssl / tls = https

Punto de prueba 2: proceso de comunicación de la red informática (navegador / cliente + servidor)

Punto de prueba 2: Proceso de comunicación de la red informática (navegador / cliente + servidor).
Sabemos que HTTP está en la capa de aplicación. Obviamente, en el proceso de comunicación Web, no solo necesitamos el protocolo HTTP, sino que también involucramos a otros Acuerdo.
Capa de aplicación: DNS: responsable de resolver los nombres de dominio. Cuando
visitamos una página web, a menudo visitamos www.zhongfucheng.site a través del nombre de dominio, y la comunicación por computadora solo reconoce nuestra dirección de host (192.168.xxx.xxx), por lo que cuando Cuando ingresamos el nombre de dominio, necesitamos DNS para resolver el nombre de dominio en un host para el acceso.
Capa de aplicación: HTTP: Generar datos de mensajes de solicitud
Cuando operamos en una página Web, se generarán datos de mensajes HTTP, solicitando al servidor correspondiente que responda.
Escriba la descripción de la imagen aquí
Protocolo TCP: dividir los datos HTTP para garantizar el transporte de datos. El
protocolo TCP utiliza un protocolo de enlace de tres vías para garantizar el transporte preciso de los datos. Al transportar datos, el identificador se envía al servidor, el servidor también devuelve el identificador al cliente y el cliente recibe Una vez recibido el mensaje, el identificador se devuelve al servidor nuevamente. Esto asegura que el transporte de datos sea confiable.
Capa de red: protocolo IP: transmite paquetes de datos, encuentra la dirección de destino de la comunicación ( Truco: la dirección IP es una dirección de red, cambiará, la dirección Mac es una dirección de hardware, no cambiará, el protocolo ARP puede reflejar la dirección IP como Dirección Mac ).
El protocolo IP envía nuestros paquetes de datos generados a la otra parte. La dirección IP indica la dirección del nodo, pero la dirección IP puede cambiarse. Podemos usar el protocolo ARP para reflejar la dirección IP en la dirección MAC. La dirección MAC no cambiará, es la dirección fija de la tarjeta de red.
Antes de encontrar el destino de la comunicación, tenemos que transferir continuamente, este proceso se llama "transferencia de ruta", no sabemos cuántas veces se ha transferido la ruta. Por lo tanto, es imposible comprender completamente el estado de transmisión en Internet.
Capa de enlace de datos: omitida;
Capa física: omitida.

Punto de prueba 3: el navegador / cliente debe informar al servidor de la intención de la solicitud (GET | POST)

Punto de prueba 3: El navegador / cliente debe informar al servidor de la intención de la solicitud (GET | POST)
Si hemos desarrollado un programa web, sabemos que los métodos de envío más utilizados son los métodos POST y GET, y también sabemos que GET se utiliza para obtener datos. POST se utiliza para enviar datos.
De hecho, el protocolo HTTP admite otros métodos, como Input, Delete, OPTIONS y muchos de estos métodos. Y debido al uso común, es posible que solo conozcamos los métodos GET y POST.
El propósito de los métodos HTTP es decirle al servidor qué operación desea realizar el cliente. Cuando HTTP es el método OPTIONS, el servidor devolverá el método HTTP que admite.
Por supuesto, ahora prevalece RESTful, que consiste en hacer un uso completo de estos métodos del protocolo HTTP.

Punto de prueba 4: HTTP es un protocolo sin estado, es decir, un protocolo que no guarda el estado del usuario

Punto de prueba 4: HTTP es un protocolo sin estado, es decir, un protocolo que no guarda el estado del usuario,
HTTP no tiene estado, es decir, no guarda el estado de la comunicación. No sabe con quién se comunicó antes la otra parte. El propósito de este diseño es simplificar HTTP y manejar una gran cantidad de transacciones rápidamente.

Pregunta: En el desarrollo de back-end web, a menudo es necesario saber quién está visitando. Dado que el protocolo http no puede guardar el estado del usuario, ¿cómo implementar la tecnología de cookies más básica para guardar el estado del usuario?
Respuesta: Utilice la tecnología de cookies. Si el servidor quiere recordar quién es el cliente, emite una cookie para el cliente. El cliente guarda la cookie en el disco duro. Cuando el servidor visite el servidor la próxima vez, el navegador traerá automáticamente la cookie del cliente. De esta forma, el servidor puede saber quién es este tipo.
ps: La sesión se almacena en la memoria del servidor, por lo que es volátil, la sesión se almacena y se transmite a través de cookies o redirección de URL.

Punto de prueba 5: conexión persistente (de una conexión corta a una conexión larga, de HTTP 1.0 a HTTP 1.1)

Punto de prueba 5: conexión persistente (desde una conexión corta a una conexión larga, de HTTP 1.0 a HTTP 1.1)
HTTP1.0 es una conexión corta : en HTTP1.0, cada vez que se desconecta la comunicación HTTP. Si hay poca capacidad para la transmisión de texto, no hay problema. Pero si visitamos una página web, esa página web tiene muchas imágenes. Una imagen se considera una solicitud HTTP. Luego, a la mitad del camino, las conexiones TCP se establecen continuamente, se obtienen imágenes y las conexiones TCP se desconectan.
HTTP1.1 introduce conexiones largas : esto es una pérdida de recursos, por lo que en la versión HTTP1.1, es una conexión persistente. Una conexión HTTP puede manejar múltiples solicitudes. Es posible enviar conexiones persistentes de forma "canalizada": en una conexión HTTP, puede continuar enviando una segunda solicitud sin esperar a que el servidor responda a la solicitud.

Punto de prueba 6: dos formas de mejorar la eficiencia de la transmisión (compresión y bloqueo)

Punto de prueba 6: dos formas de mejorar la eficiencia de la transmisión (compresión y bloqueo)

Antes de explicar, primero debemos saber qué es un cuerpo de entidad, un cuerpo de
entidad son los datos transmitidos en HTTP como datos.

Generalmente, el cuerpo de la entidad puede ser equivalente al cuerpo del mensaje, que es parte de HTTP.
Si no utilizamos ningún medio, el cuerpo de la entidad de datos devuelto por el servidor se devuelve como está. Podemos usar dos formas de mejorar la eficiencia de transmisión
(1) Compresión: use tecnología de compresión para reducir el tamaño del cuerpo de la entidad y luego analizar los datos en el lado del cliente
(2) Bloque: use la codificación de transferencia de bloques para transferir el cuerpo de la entidad en bloques, Cuando el navegador se resuelve en el cuerpo de la entidad, se puede mostrar.

Punto de prueba 7: reanudar la carga en un punto de interrupción (función: reanudar la carga en un punto de interrupción; realización: solicitud de alcance)

Punto de prueba 7:
Reanudar descarga con breakpoint (Función: Reanudar descarga con breakpoint; Implementación: Solicitud de rango) Si nos interrumpen en el proceso de descargar algo, necesitamos descargarlo nuevamente antes, pero ahora podemos continuar descargando durante la interrupción. Podemos usar para obtener datos de rango, ¡esto se llama solicitud de rango!
Definición de solicitud de alcance: solo se descargará una parte del recurso . Es decir, la mitad de mi imagen ha sido descargada y solo necesitamos descargar la otra mitad para formar una imagen completa. Luego, al solicitar, se puede solicitar la parte que no se descarga.
resumen:

Punto de prueba 8: Breve descripción de los códigos de estado de uso común

Sitio de prueba 8: Una breve descripción de los códigos de estado de uso común (más importantes, exámenes frecuentes, las entrevistas deben poder decir los siguientes comunes)
2XX Generalmente, la solicitud es exitosa
200 Procesamiento normal
204 Procesamiento exitoso, pero el servidor no devuelve nuevos datos, la página de visualización no se actualiza
206 Se realiza una solicitud de rango al servidor y solo se devuelve una parte de los datos.
3XX generalmente indica que
al recurso solicitado por la redirección 301 se le ha asignado un nuevo URI y la dirección URL ha cambiado. [Redirección permanente]
302 Al recurso solicitado se le asigna temporalmente un nuevo URI y la dirección URL no ha cambiado. [Reenvío]
303 La misma función que 302, pero está claro que el cliente debe usar GET para obtener recursos. [Reenvío]
304 Se envía una solicitud adjunta , Pero no cumple las condiciones [Devolver datos en caché que no hayan expirado]
307 es lo mismo que 302, pero no convertirá la solicitud POST en GET [Reenviar]
4XX Error de cliente
400 Error de sintaxis del mensaje de solicitud
401 Necesidad de autenticar la identidad
403 Sin acceso [En la práctica (práctica de contacto), Nginx a menudo tiene este] El
servidor 404 no tiene este recurso [En la práctica (práctica de contacto), dos situaciones: 1. El recurso no existe; 2. La ruta es incorrecta]
Error del servidor 5XX
500 Error de recurso interno el [práctica (con práctica), programadores de back-end equivocados, depúrelo usted mismo] El
servidor 503 está ocupado
entrevistando la organización del idioma:
la primera oración: la solicitud 2XX fue exitosa, la redirección 3XX, el error del cliente 4XX, el error del servidor 5XX
primero Segunda frase: memorizar los de uso común arriba, prestar atención a los que se pueden ampliar, en lo que a la práctica se refiere, todos memorizar directamente, demasiado bajo

Punto de prueba 9: alojamiento virtual

Punto de prueba 9: host virtual (Nginx puede implementar esta tecnología), la aplicación entre el servidor y el cliente. Lo
primero que hay que decir es que un servidor HTTP puede tener múltiples sitios, es decir, se pueden configurar múltiples hosts virtuales bajo HTTP. Cuando los usuarios acceden a diferentes hosts, en realidad acceden al mismo servidor HTTP.

Punto de prueba 10: también existen algunas aplicaciones para el reenvío de datos de comunicación en el cliente y el servidor

Punto de prueba 10: también hay algunos programas de aplicación que se utilizan para el reenvío de datos de comunicación en el cliente y el servidor. El
proxy (el proxy del lado del cliente es el proxy de reenvío y el proxy del lado del servidor es el proxy inverso)
se puede utilizar para almacenar datos en caché. Después de recibir los datos, el cliente puede usar directamente el proxy para obtener los datos. Se
puede usar para controlar el acceso al sitio web y obtener registros de registro de acceso. La
puerta de enlace
puede proporcionar operaciones de solicitud no HTTP y bases de datos de acceso. Un
túnel puede
establecer una ruta de comunicación segura. Se puede usar SSL. Y otros medios de cifrado para comunicarse.
Organización del idioma de la entrevista (principalmente agentes):
1. Definición de agente: En el modelo de agente, la clase de agente y la clase real implementan la misma interfaz, es un agente real, independientemente de que sea un proxy directo o un proxy inverso.
2. Proxy de reenvío y proxy inverso: el proxy del lado del cliente es el proxy de reenvío y el proxy del lado del servidor es el proxy inverso.

Punto de prueba 11: mensaje de solicitud HTTP, encabezado de solicitud (más importante)

Punto de prueba 11: mensaje de solicitud HTTP, encabezado de solicitud (más importante)
Mensaje de solicitud HTTP: en la solicitud, el mensaje HTTP se compone de métodos, URI, versión HTTP, campos de encabezado HTTP y otras partes.
Inserte la descripción de la imagen aquí
Línea de solicitud [Describa el método de solicitud del cliente, el nombre del recurso solicitado y el número de versión del protocolo HTTP utilizado]
campo de encabezado [Describa qué host solicita las solicitudes del cliente, y alguna información ambiental del cliente, etc.]
Una línea en blanco
Ejemplo de campo de encabezado:
Aceptar: text / html, image / * [El navegador le dice al servidor qué tipos de datos admite]
Accept-Charset: ISO-8859-1 [El navegador le dice al servidor qué juego de caracteres admite]
Accept-Encoding: gzip, compress [Examinar El navegador le dice al servidor que es compatible con el formato de compresión]
Accept-Language: en-us, zh-cn [El navegador le dice al servidor que su entorno de idioma]
Host: www.it315.org:80 [El navegador le dice al servidor que quiere Qué host visitar]
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT [El navegador le dice al servidor cuánto tiempo almacenar en caché los datos]
Referer: http://www.it315.org/index.jsp [Browse El navegador le dice al servidor que el cliente vino de esa página — anti-hotlinking]
Usuario-Agente: Mozilla / 4.0 (compatible; MSIE 5.5; Windows NT 5.0) [El navegador le dice al servidor cuál es el núcleo del navegador]
Cookie [Examinar El dispositivo le dice al servidor qué es la cookie]
Conexión: cerrar / Keep-Alive [El navegador le dice al servidor si debe desconectarse o mantener el enlace después de la solicitud]
Fecha: martes, 11 de julio de 2000 18:23:51 GMT [El navegador le dice al servidor la hora de la solicitud]

Punto de prueba 12: mensaje de respuesta HTTP, encabezado de respuesta (más importante)

Punto de prueba 12: mensaje de respuesta HTTP, encabezado de respuesta (más importante)
Mensaje de respuesta HTTP: en la respuesta, el mensaje HTTP consta de tres partes: versión HTTP, código de estado (número y frase de motivo) y campo de encabezado HTTP.
Inserte la descripción de la imagen aquí
Una línea de estado [utilizada para describir el resultado del procesamiento de la solicitud por parte del servidor. ] El
campo de encabezado [utilizado para describir la información básica del servidor y la descripción de los datos. A través de la descripción de estos datos, el servidor puede informar al cliente cómo procesar los datos que envía de vuelta después de un tiempo]
un
contenido de entidad de línea vacía [el servidor envía de vuelta al cliente Datos]
Línea de estado:
Formato: Número de versión HTTP Código de estado descripción de la razón
Línea de estado: HTTP / 1.1 200 OK El
código de estado se utiliza para indicar el resultado del procesamiento de la solicitud por parte del servidor Es un número decimal de tres dígitos. Los códigos de estado de respuesta se dividen en 5 categorías.
Inserte la descripción de la imagen aquí
Ejemplos de campos de encabezado:
Ubicación: http://www.it315.org/index.jsp [El servidor le dice al navegador a qué página saltar]
Servidor: apache tomcat [El servidor le dice al navegador, el servidor ¿Cuál es el número de modelo?
Codificación de contenido: gzip [El servidor le dice al navegador el formato de compresión de datos]
Longitud del contenido: 80 [El servidor le dice al navegador la longitud de los datos devueltos]
Contenido-Idioma: zh-cn [El servidor le dice al navegador, el idioma del servidor Entorno]
Content-Type: text / html; charset = GB2312 [El servidor le dice al navegador el tipo de datos devueltos]
Última modificación: martes, 11 de julio de 2000 18:23:51 GMT [El servidor le dice al navegador la hora de la última actualización del recurso]
Actualizar: 1; url = http: //www.it315.org [El servidor le dice al navegador que se actualice regularmente ]
Disposición de contenido: archivo adjunto; nombre de archivo = aaa.zip [El servidor le dice al navegador que abra los datos como descarga]
Codificación de transferencia: fragmentado [El servidor le dice al navegador que envíe los datos de vuelta en fragmentos]
Set-Cookie: SS = Q0 = 5Lb_nQ; ruta = / búsqueda [El servidor le dice al navegador que guarde las cookies]
Caduca: -1 [El servidor le dice al navegador que no configure el caché]
Cache-Control: no-cache [El servidor le dice al navegador que no configure el caché]
Pragma: no-cache [El servidor dice No configure la caché en el navegador]
Conexión: cerrar / Keep-Alive [El servidor le dice al navegador cómo conectarse]
Fecha: Mar, 11 de julio de 2000 18:23:51 GMT [El servidor le dice al navegador cuándo enviar datos]

Punto de prueba 13: HTTP + SSL / TLS == HTTPS, cifrado simétrico, cifrado asimétrico

Punto de prueba 13: HTTP + SSL / TLS == HTTPS, cifrado simétrico, cifrado asimétrico
HTTP inseguro
HTTP es insuficiente en términos de seguridad, los cambios específicos a los tres puntos existentes:
(1) La comunicación utiliza texto sin formato [el contenido no ha sido cifrado]
(2) Si no se verifica la identidad de la parte comunicante, tanto el cliente como el servidor
pueden comunicarse a voluntad. (3) No se puede probar la integridad del mensaje [Después de monitorear a otros, se puede manipular]
Generalmente usamos la herramienta de captura de paquetes para obtenerlo cuando estamos en línea. Es la información solicitada por HTTP, que es ineludible para TCP / IP en la comunicación de red.
Suponiendo que ciframos el mensaje HTTP, es solo el cifrado del contenido. Si alguien más ha obtenido el contenido HTTP, incluso si no puede descifrar el contenido HTTP, aún puede ser manipulado.
HTTP + SSL / TLS == HTTPS
Es mejor usar SSL para establecer una línea de comunicación segura, y luego la comunicación HTTP se puede realizar en esta línea.
De hecho, HTTPS es HTTP cubierto con SSL ...
HTTPS utiliza una mezcla de secreto compartido (cifrado simétrico) y cifrado asimétrico para el cifrado. Dado que el cifrado asimétrico requiere demasiados recursos, es imposible comunicarse con el cifrado asimétrico todo el tiempo. Por lo tanto, HTTP utiliza cifrado asimétrico al establecer una línea de comunicación. Una vez establecida la conexión, la clave compartida (cifrado simétrico) se utiliza para cifrar y descifrar.
Para la autenticación, HTTPS se basa en una autoridad de certificación externa para obtener la autenticación. El certificado reconocido, por tanto, puede verificar si el servidor es legítimo.
Del lado del cliente, debe comprar el certificado de certificación usted mismo, lo cual es muy difícil de implementar [El certificado requiere dinero].
Por lo tanto, incluso si la mayoría de los sitios web utilizan la autenticación de formulario, esta es la autenticación de cliente más utilizada.

Organización del idioma de la entrevista:
1. HTTP + SSL / TLS == HTTPS
2. Proceso: HTTPS utiliza una clave compartida (cifrado simétrico) y un cifrado asimétrico para el cifrado. Dado que el cifrado asimétrico requiere demasiados recursos, es imposible comunicarse con el cifrado asimétrico todo el tiempo. Por lo tanto, HTTP utiliza cifrado asimétrico al establecer líneas de comunicación. Una vez establecida la conexión, la clave compartida (cifrado simétrico) se utiliza para cifrar y descifrar.

Supongo que te gusta

Origin blog.csdn.net/qq_36963950/article/details/108940581
Recomendado
Clasificación