Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El Protocolo de transferencia de hipertexto (o HTTP) es un protocolo para solicitar recursos desde un servidor web. La System.Net.Http.HttpClient clase expone la capacidad de enviar solicitudes HTTP y recibir respuestas HTTP de un recurso identificado por un URI. Muchos tipos de recursos están disponibles en la web y HTTP define un conjunto de métodos de solicitud para acceder a estos recursos.
Métodos de solicitud HTTP
Los métodos de solicitud se diferencian a través de varios factores, primero por su verbo , pero también por las siguientes características:
- Un método de solicitud es idempotente si se puede procesar correctamente varias veces sin cambiar el resultado. Para obtener más información, consulte RFC 9110: 9.2.2. Métodos idempotentes.
- Un método de solicitud se puede almacenar en caché cuando se puede almacenar su respuesta correspondiente para su reutilización. Para obtener más información, consulte RFC 9110: Sección 9.2.3. Métodos y almacenamiento en caché.
- Un método de solicitud se considera un método seguro si no modifica el estado de un recurso. Todos los métodos seguros también son idempotentes, pero no todos los métodos idempotentes se consideran seguros. Para obtener más información, vea RFC 9110: Sección 9.2.1. Métodos seguros.
Método HTTP | Es idempotente | Es almacenable en caché | Es seguro |
---|---|---|---|
GET |
✔️ Sí | ✔️ Sí | ✔️ Sí |
POST |
❌ No | ⚠️ †Raramente | ❌ No |
PUT |
✔️ Sí | ❌ No | ❌ No |
PATCH |
❌ No | ❌ No | ❌ No |
DELETE |
✔️ Sí | ❌ No | ❌ No |
HEAD |
✔️ Sí | ✔️ Sí | ✔️ Sí |
OPTIONS |
✔️ Sí | ❌ No | ✔️ Sí |
TRACE |
✔️ Sí | ❌ No | ✔️ Sí |
CONNECT |
❌ No | ❌ No | ❌ No |
†El
POST
método solo se puede almacenar en caché cuando están presentes los encabezados de respuesta adecuadosCache-Control
oExpires
. Esto es muy poco común en la práctica.
Códigos de estado HTTP
.NET proporciona compatibilidad completa con el protocolo HTTP, que representa la mayor parte del tráfico de Internet, con el HttpClient. Para obtener más información, consulte Realización de solicitudes HTTP con la clase HttpClient. Las aplicaciones reciben errores de protocolo HTTP detectando un HttpRequestException. Los códigos de estado HTTP se notifican en HttpResponseMessage con el HttpResponseMessage.StatusCode o en HttpRequestException con el HttpRequestException.StatusCode en caso de que el método llamado no devuelva un mensaje de respuesta. Para obtener más información sobre el control de errores, consulte Control de errores HTTP y para obtener más información sobre los códigos de estado, consulte RFC 9110, SEMántica HTTP: Códigos de estado.
Códigos de estado informativo
Los códigos de estado informativo reflejan una respuesta provisional. La mayoría de las respuestas provisionales, por ejemplo HttpStatusCode.Continue, se controlan internamente con HttpClient y nunca se exponen al usuario.
Código de estado HTTP | HttpStatusCode |
---|---|
100 |
HttpStatusCode.Continue |
101 |
HttpStatusCode.SwitchingProtocols |
102 |
HttpStatusCode.Processing |
103 |
HttpStatusCode.EarlyHints |
Códigos de estado correctos
Los códigos de estado correctos indican que la solicitud del cliente se ha recibido, comprendido y aceptado correctamente.
Código de estado HTTP | HttpStatusCode |
---|---|
200 |
HttpStatusCode.OK |
201 |
HttpStatusCode.Created |
202 |
HttpStatusCode.Accepted |
203 |
HttpStatusCode.NonAuthoritativeInformation |
204 |
HttpStatusCode.NoContent |
205 |
HttpStatusCode.ResetContent |
206 |
HttpStatusCode.PartialContent |
207 |
HttpStatusCode.MultiStatus |
208 |
HttpStatusCode.AlreadyReported |
226 |
HttpStatusCode.IMUsed |
Códigos de estado de redireccionamiento
Los códigos de estado de redireccionamiento requieren que el agente de usuario tome medidas para cumplir la solicitud. El redireccionamiento automático está activado de forma predeterminada, se puede cambiar con HttpClientHandler.AllowAutoRedirect o SocketsHttpHandler.AllowAutoRedirect.
Código de estado HTTP | HttpStatusCode |
---|---|
300 |
HttpStatusCode.MultipleChoices o HttpStatusCode.Ambiguous |
301 |
HttpStatusCode.MovedPermanently o HttpStatusCode.Moved |
302 |
HttpStatusCode.Found o HttpStatusCode.Redirect |
303 |
HttpStatusCode.SeeOther o HttpStatusCode.RedirectMethod |
304 |
HttpStatusCode.NotModified |
305 |
HttpStatusCode.UseProxy |
306 |
HttpStatusCode.Unused |
307 |
HttpStatusCode.TemporaryRedirect o HttpStatusCode.RedirectKeepVerb |
308 |
HttpStatusCode.PermanentRedirect |
Códigos de estado de error de cliente
Los códigos de estado de error del cliente indican que la solicitud del cliente no era válida.
Códigos de estado de error del servidor
Los códigos de estado de error del servidor indican que el servidor encontró una condición inesperada que impedía que cumpla la solicitud.
Código de estado HTTP | HttpStatusCode |
---|---|
500 |
HttpStatusCode.InternalServerError |
501 |
HttpStatusCode.NotImplemented |
502 |
HttpStatusCode.BadGateway |
503 |
HttpStatusCode.ServiceUnavailable |
504 |
HttpStatusCode.GatewayTimeout |
505 |
HttpStatusCode.HttpVersionNotSupported |
506 |
HttpStatusCode.VariantAlsoNegotiates |
507 |
HttpStatusCode.InsufficientStorage |
508 |
HttpStatusCode.LoopDetected |
510 |
HttpStatusCode.NotExtended |
511 |
HttpStatusCode.NetworkAuthenticationRequired |