El protocolo utilizado para la transmisión de archivos es HTTP o HTTPS (ofrece un nivel extra de seguridad gracias al cifrado). Este protocolo se basa a su vez en los protocolos de red IP y TCP. Así, un servidor web puede mostrar el contenido de un sitio web de forma simultánea a varios clientes que entiendan el protocolo HTTP.
HTTP define un conjunto de métodos de petición para indicar la acción que se desea realizar para un recurso determinado. Aunque estos también pueden ser sustantivos, estos métodos de solicitud a veces son llamados HTTP verbs.
- GET. El método GET solicita una representación de un recurso específico. Las peticiones que usan el método GET sólo deben recuperar datos.
- HEAD. El método HEAD pide una respuesta idéntica a la de una petición GET, pero sin el cuerpo de la respuesta.
- POST. El método POST se utiliza para enviar una entidad a un recurso en específico, causando a menudo un cambio en el estado o efectos secundarios en el servidor.
- PUT. El modo PUT reemplaza todas las representaciones actuales del recurso de destino con la carga útil de la petición.
- DELETE. El método DELETE borra un recurso en específico.
- CONNECT. El método CONNECT establece un túnel hacia el servidor identificado por el recurso.
- OPTIONS. El método OPTIONS es utilizado para describir las opciones de comunicación para el recurso de destino.
- TRACE. El método TRACE realiza una prueba de bucle de retorno de mensaje a lo largo de la ruta al recurso de destino.
- PATCH. El método PATCH es utilizado para aplicar modificaciones parciales a un recurso.
Los mensajes HTTP, son los medios por los cuales se intercambian datos entre servidores y clientes. Hay dos tipos de mensajes: peticiones, enviadas por el cliente al servidor, para pedir el inicio de una acción; y respuestas, que son la respuesta del servidor.
Los mensajes HTTP están compuestos de texto, codificado en ASCII, y pueden comprender múltiples líneas. En HTTP/1.1, y versiones previas del protocolo, estos mensajes eran enviados de forma abierta a través de la conexión. En HTTP/2.0 los mensajes, que anteriormente eran legibles directamente, se conforman mediante tramas binarias codificadas para aumentar la optimización y rendimiento de la transmisión.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# System.Net.HttpListener: proporciona un agente de escucha del protocolo HTTP sencillo y controlado mediante programación $serverweb = [System.Net.HttpListener]::new() # Obtiene los prefijos de identificador uniforme de recursos (URI) controlados por este objeto $serverweb.Prefixes.Add('http://localhost:8080/') # Permite que esta instancia reciba solicitudes de entrada $serverweb.Start() # Espera a una solicitud de entrada y vuelve cuando se recibe una $peticion = $serverweb.GetContext() # Construir, escribir y cerrar la respuesta con un contenido HTML en la petición recibida (sin tener en cuenta el recurso por el que se pide, si hay que tener en cuenta el recurso se utiliza $peticion.Request.Url y $peticion.Request.Url.LocalPath) $paginaweb = [System.Text.Encoding]::UTF8.GetBytes("<html><body>Servidor web</body></html>") $peticion.Response.ContentLength64 = $paginaweb.Length $peticion.Response.OutputStream.Write($paginaweb,0,$paginaweb.Length) $peticion.Response.StatusCode $peticion.Response.Close() # Hace que esta instancia deje de recibir nuevas solicitudes entrantes y termine el procesamiento de todas las solicitudes en curso $serverweb.Stop() |