[Operación y Mantenimiento] Lección 05: Los métodos y casos de uso más comunes del comando Curl

En esta lección, comprendemos principalmente el uso y los casos comunes del comando Curl. Antes de aprender el contenido de esta lección, debe comprender el proceso de solicitud HTTP y los conceptos básicos del sistema operativo Linux.

En primer lugar, presentemos Curl primero. Curl es una herramienta en la línea de comandos de Linux. Simula las solicitudes de los clientes y sigue el protocolo de solicitud como HTTP o HTTPS. Aprendimos sobre las herramientas de desarrollo en el navegador Chrome en el curso anterior. Es un herramienta similar, excepto que no es una herramienta IDE, es una herramienta de línea de comandos.

De hecho, necesitamos herramientas de línea de comandos en muchos escenarios. Si tiene un conjunto de scripts y necesita llamar a la interfaz API HTTP, o monitorear el estado de su propio servidor de sitio web, necesita usar comandos para hacer HTTP\HTTPS solicitar llamadas y obtener resultados.

Además, cuando necesite usar una herramienta para analizar rápidamente las fallas o problemas de un sitio web, en lugar de usar un navegador, también necesita una herramienta de línea de comandos para un uso fácil, para que los ingenieros de operación y mantenimiento entiendan que el uso de Curl El mando es muy necesario.

uso de rizo

El contenido de esta clase gira en torno al comando Curl y comparte la experiencia de usar algunos escenarios.

inserte la descripción de la imagen aquí

El uso de rizos se divide en dos categorías principales.

Uno es el análisis de los servicios del sitio web. Los ingenieros querrán saber el estado de retorno del sitio web, esperar comprender todo el proceso de comunicación HTTP, desear conocer escenarios específicos como el entorno del sitio del servicio IPV6 para pruebas de simulación, etc.

El segundo tipo es el uso de fines funcionales. Aquí aprenderemos cómo Curl carga y descarga archivos, cómo reanudar las cargas, cómo iniciar múltiples solicitudes HTTP, cómo usar el modo proxy de Curl para acceder.

Análisis del servicio del sitio web

inserte la descripción de la imagen aquí

Comencemos con el análisis del servicio del sitio web. Cuando se habla del análisis del estado del sitio web, algunos estudiantes a menudo me hacen algunas preguntas, por ejemplo, ¿cómo solucionar problemas si mi sitio web no se puede abrir? Instalé un servicio por mi cuenta, pero no puedo solicitarlo cuando abro el navegador, ¿cómo puedo analizarlo? Al hacer esa pregunta, creo que es posible que no tenga una idea muy clara de la solución de problemas de todo el servicio del sitio web, resolvámoslo a continuación.

Después de implementar y cambiar un sitio, primero se debe analizar el estado del servidor, comenzando con el proceso:

  1. A ver si se inicia el proceso? ¿Existe?
  2. ¿El estado del proceso es normal?, ¿se está ejecutando o ha entrado en un estado de interbloqueo?

Además, podemos usarlo para analizar si el proceso está dentro del rango normal a través de la utilización de la CPU y otros recursos, y analizar su información de error a través de registros.

Después de analizar que el estado del proceso es normal, debemos entender por qué hay un problema para acceder al servidor desde el cliente.

  1. En primer lugar, verifique desde la red subyacente si se puede hacer ping al estado de su red y, en segundo lugar, ¿es normal establecer una conexión TCP? En este momento, podemos usar
    Telnet o TCPdump para capturar o analizar paquetes.
  2. Después de identificar el estado normal de la red, busque problemas en la capa superior, es decir, la capa de aplicación. Si el sitio web sirve servicios web HTTP\HTTPS, entonces necesitamos simular solicitudes HTTP al servidor para determinar si la información del
    encabezado y la información del cuerpo devuelta por el servidor cumple con los requisitos. Esperamos que en este momento necesitemos usar herramientas relevantes para el análisis. El comando Curl
    juega un papel muy bueno en este proceso.

Hablando de comprobar el estado del servicio HTTP/HTTPS del sitio web, ¿qué aspectos comprueba principalmente el comando Curl para este análisis?

El escenario más común es mirar el estado devuelto por todo el servidor. La información del encabezado del encabezado contiene información de estado HTTP (Código de estado). Si el valor es 200, significa una respuesta normal. Si es una respuesta anormal, verá otros valores, como 500, 404, 403, etc. Podemos use este código de estado para ubicar directamente una dirección que pueda causar problemas, tales como: 403 puede deberse a un acceso restringido, 404 puede ser un archivo no encontrado, 500 puede ser un problema con el programa, etc.

A veces, optamos por analizar si el contenido del cuerpo que devuelve cumple con las expectativas. Todo esto se puede lograr con el comando Curl.

Formato de uso del comando Curl

A continuación, echemos un vistazo a cómo usar Curl.

Primero, agregue una opción después del comando Curl, lo que significa configurar los parámetros para que Curl inicie la solicitud (opcional), y finalmente agregue la URL que debe solicitarse. Aquí agrego una opción -i, lo que significa que la terminal solo mira la información del encabezado devuelta por el servidor sin agregar -i Luego, ve el contenido de los datos del cuerpo devuelto de forma predeterminada. Si se agrega -o output.txt, significa generar el contenido devuelto por el servidor a un archivo.

Vamos a mostrar cómo.

Primero, uso el comando Curl para solicitar baidu.com. En este momento, veremos que devuelve solo el código HTML en el cuerpo. ¿Qué pasa si solo queremos ver la información del encabezado de respuesta que devuelve? Podemos agregar una opción -I y veremos la información de encabezado relevante devuelta por el servidor, que contiene mucha información de encabezado de respuesta.Por ejemplo, el tipo de protocolo HTTP es 1.1 y el código de estado del servidor es 200, lo que indica que el servidor regresa normalmente. Al mismo tiempo, puede ver la longitud de los datos, el tipo y la información del encabezado en caché que devuelve el servidor.

El anterior es el modo común utilizado por Curl, presumiblemente la mayoría de los estudiantes deberían ser más claros. A continuación, echemos un vistazo más de cerca a algunos escenarios especiales.

Aquí solicito la URL de la dirección de mi blog (comando: curl www.taida.ltd), y encontrará que no se devuelven datos de cuerpo predeterminados. ¿por qué? Debido a que el servidor devuelve algunos códigos de estado de redirección, como la redirección 301 y 302, no hay datos del cuerpo, solo se devuelve la información del encabezado, por lo que primero podemos ver el contenido de la información del encabezado.

En este momento, si desea comprender todo el proceso de comunicación de manera más completa, puede agregar un parámetro -v (comando: curl www.taida.ltd). ¿Puedes ver si el servidor de solicitudes lo ha enviado? Y puede ver cuál es el contenido de la solicitud enviada por el cliente y qué devuelve el servidor.La función de agregar el parámetro -v es imprimir todo el proceso de comunicación.

inserte la descripción de la imagen aquí

Aquí puede ver todo el proceso de solicitud después de agregar -v, incluido: cuál es la información del encabezado de la solicitud y cuál es la información del encabezado devuelta por el servidor, y si hay información del cuerpo devuelta por el servidor, la información del cuerpo será también se imprimirá.

En la información del encabezado, es posible que debamos centrarnos en el código de estado del estado del servicio. Por lo general, puede analizar de acuerdo con las siguientes reglas:

Si el código de estado está entre 100 y 199, significa que el servidor normalmente ha dado una respuesta de información, pero no ha establecido completamente una respuesta de solicitud HTTP completa.

200~299 significa una respuesta exitosa Al ver este código de estado, se puede considerar que el servidor está procesando esta solicitud normalmente.

300~399 significa redirección, como 301, 302, estos códigos de estado de redirección comunes.

Si es más de 400, significa que el método de solicitud del cliente no puede obtener una respuesta normal, entonces debemos analizar su código de estado en detalle, como 403, 404, 499, 400 y otros códigos de error relacionados. Si no lo entiende, puede buscar el código de error en Baidu o Google para ver qué significa.

500+ es generalmente un problema con el programa del servidor o algunas respuestas de servicio relacionadas con la lógica.

A continuación, volvamos a la consola para ver más demostraciones.

A través del parámetro -v (curl -v www.taida.ltd), puede ver que el código de estado devuelto por el servidor es 301, lo que significa que se ha devuelto un código de estado redirigido, y la información del encabezado de la ubicación será dado. Sabemos que el código de estado 301 indica que la solicitud se redirige directamente a otra dirección, y la dirección después de la ubicación es la dirección redirigida (Ubicación: http://www.taida.ltd/jeson). En este momento, ¿es posible solicitar esta dirección en un solo paso en el comando Curl? En este momento, se puede realizar a través del parámetro -L.

Aquí agrego un parámetro -L (curl -L http://www.taida.ltd) para ver el efecto. En este momento, veremos que todo el proceso de comunicación ha cambiado y luego se imprime una gran cantidad de información del cuerpo. Volvamos a la parte superior de la información impresa y echemos un vistazo al proceso de comunicación.

En primer lugar, lo que ve es que la primera vez que el servidor devuelve un estado de redirección (redirección 301), Curl inicia la solicitud nuevamente a la dirección redirigida y finalmente obtiene los datos del cuerpo y el código de respuesta de la última solicitud.

A continuación, sigamos explicando otros escenarios Curl en profundidad en la consola y cómo agregar información de encabezado de solicitud con solicitudes Curl.

En primer lugar, puede ver que aquí hay un enlace para descargar el paquete de datos, porque es un paquete de descarga (gran cantidad de datos), así que agrego un parámetro -I, solo mire la información del encabezado devuelto, el código de estado devuelto por el servidor después de que se inicia la solicitud es 404 , lo que indica que no se encontró el paquete. Entonces, ¿por qué está devolviendo un 404 aquí? Debido a que realicé una configuración de seguridad especial para este enlace de solicitud, configuré directamente una regla 404 de devolución en Nginx, lo que requiere que el cliente traiga la información de referencia antes de que pueda acceder y descargar normalmente. Sabemos que Referer es un encabezado de información común en el encabezado de solicitud HTTP, que indica de qué dirección proviene la solicitud.

Entonces, a continuación, agrego una solicitud de encabezado Referer a la solicitud de Curl, aquí agrego una opción -e (curl -e "http://www.taida.ltd/" -I http://www.taida.ltd/download /ywgs_lg.tgz

), y luego agregue una URL de dirección de enlace de referencia requerida, para que coincida con las reglas del servidor y se pueda acceder normalmente. .

Echemos un vistazo, lo que se devuelve en este momento es un código de estado 200.

Cómo usar el comando Curl

Salga de la demostración de la consola, echemos un vistazo a más formas de usar el comando Curl.

Si está visitando un sitio HTTPS, los sitios HTTPS se dividen en certificados públicos y tipos de certificados personalizados. Si es un certificado público, no necesita agregar una clave privada localmente. Si es un certificado personalizado creado por usted, debe colocar la clave en el cliente en este momento y luego solicitar el servidor HTTPS agregando -E a Curl.

Para otros usos, el encabezado Referer se agregó en la demostración hace un momento, y también puede agregar otra información del encabezado del protocolo HTTP. El usuario puede personalizar o reescribir el encabezado de la solicitud HTTP. Al solicitar un determinado sitio web aquí, agregué un encabezado --user-agent, que indica qué tipo de navegador está usando el lado del navegador de mi solicitud.

Vimos que la información del encabezado en la explicación anterior es la información del encabezado estándar de HTTP. ¿Puedo agregar alguna información de encabezado de solicitud personalizada? ¿Si es así, cómo? En este momento, podemos agregar información de encabezado personalizado a través de --head, aquí hay una demostración de cómo agregar un tipo de contenido: application/json es el tipo de información de encabezado de la solicitud.

La otra parte es simular el sitio del servidor que está detectando IPv6.

Sabemos que se utiliza IPv6 para solucionar la escasez de direcciones IP para IPv4. En la actualidad, muchos sitios web importantes ya exigen el uso de IPv6 y admiten el protocolo IPv6. También veremos que a muchas estaciones base o sus propias direcciones IP se les puede asignar una dirección IPv6. Si su dirección local tiene direcciones IPv6 y el servidor admite servicios IPv6, es muy probable que su resolución DNS priorice la resolución IPv6. De esta forma se dan las condiciones para detectar sitios de servicio IPv6, ¿cómo hacerlo?

Podemos hacerlo de tal manera, como se muestra en el código, aquí hay una explicación específica para usted.

curl -6 -vo /dev/null --resolve "static.meituan.net:80:[240e:ff:e02c:1:21::]" "http://static.meituan.net/bs/@mtfe/knb-core/latest/dist/index.js"

curl -6 indica que se inició una solicitud de IPv6. -v indica el proceso de comunicación real. -o significa poner los datos del cuerpo devueltos por la solicitud en el dispositivo vacío local, es decir, los datos del cuerpo no se muestran, solo se muestra la información del encabezado, que es equivalente a la función de -I. –resolve significa resolver el nombre de dominio y la IP.Especificé y resolví manualmente la dirección de solicitud del nombre de dominio static.meituan.net a una dirección IPv6, y luego la seguí con la URL solicitada.

Esta es la forma de detección simulada de todo el IPv6. Continúe demostrando. En este momento, podemos ver todo el estado de devolución y el proceso de solicitud.

Bueno, lo anterior es parte de la investigación de Curl sobre el sitio web.

Uso funcional del rizo

A continuación, lo llevaré a comprender algunos métodos de uso funcional además del uso de Curl para el análisis de sitios web y escenarios de solución de problemas.
inserte la descripción de la imagen aquí

En primer lugar, el primer método es el modo proxy. Vemos que el comando Curl puede admitir solicitudes en forma de proxy.

Supongamos que la IP de mi proxy aquí es 200.200.200.200, luego solo agregue una -x, es decir, solicite el sitio del servidor a través de la máquina de 200.200.200.200, que es una forma de acceder a través del proxy.

La otra es la carga y descarga de archivos, podemos cargar archivos a través de dichos formatos. También puede descargar archivos directamente a través del protocolo FTP. Si agrega una -C, habilitará la reanudación del punto de interrupción. Puede ver esta imagen sobre la reanudación del punto de interrupción. El cliente y el servidor obtendrán el índice de este paquete al descargar y descargar. Cuando hay fluctuaciones o fluctuaciones en la red. Si descargue nuevamente, puede continuar descargando directamente según el valor de este índice y continuar descargando según el valor del rango de la longitud del punto de interrupción original. Por lo tanto, si desea descargar un archivo de manera estable, puede usar el método de reanudar las cargas desde puntos de quiebre.

Método de solicitud HTTP de Curl

La última parte es presentar el método de solicitud HTTP del comando Curl.

En el Curl que presentamos anteriormente, el método get se usa para obtener el contenido del servidor. Además del método get, también tenemos métodos de solicitud HTTP, que incluyen publicar, agregar, opción y otros métodos relacionados. Pero si queremos especificar el método de solicitud, podemos hacerlo agregando el método de solicitud a la opción -X.

Por ejemplo, -X post significa ENVIAR una solicitud al servidor, arg1 es el nombre del parámetro, seguido del valor del parámetro, y luego el segundo parámetro arg2 y el valor del parámetro, en este caso, los datos La información de la solicitud se transmite en forma de correo. El otro es el método put, también podemos pasarlo por -X put. -d es el valor que pasé. Si se utiliza el método de eliminación, es para solicitar al servidor y eliminar el recurso identificado de la URL.

Supongo que te gusta

Origin blog.csdn.net/ihero/article/details/131764976
Recomendado
Clasificación