Encabezados, Métodos y Códigos HTTP

Anuncio
qwertyuiopasdfghjklzxcvbnmqwertyui
opasdfghjklzxcvbnmqwertyuiopasdfgh
jklzxcvbnmqwertyuiopasdfghjklzxcvb
nmqwertyuiopasdfghjklzxcvbnmqwer
Encabezados, Métodos y Códigos
HTTP
tyuiopasdfghjklzxcvbnmqwertyuiopas
Web Application Development
dfghjklzxcvbnmqwertyuiopasdfghjklzx
cvbnmqwertyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmqwertyuiopasdfghj
klzxcvbnmqwertyuiopasdfghjklzxcvbn
mqwertyuiopasdfghjklzxcvbnmqwerty
uiopasdfghjklzxcvbnmqwertyuiopasdf
ghjklzxcvbnmqwertyuiopasdfghjklzxc
vbnmqwertyuiopasdfghjklzxcvbnmrty
uiopasdfghjklzxcvbnmqwertyuiopasdf
ghjklzxcvbnmqwertyuiopasdfghjklzxc
7CM5
Ortiz Ramírez Diana
Encabezados, Métodos y Códigos HTTP
Encabezados y métodos de Solicitud Http
Encabezado
Significado
Accept
Accept-Charset
Accept-Encoding
Accept-Language
Authorization
Connection
Content- Encoding
Content- Language
Content- Length
Content- Type
Cookie
Ortiz Ramírez Diana
Listado de tipos MIME que el cliente soporta.
Hay otros encabezados relacionados como
Accept-Charset , Accept-Encoding , AcceptLanguage .
El conjunto de caracteres que espera el
navegador.
Los tipos de codificación de datos (como gzip)
para que el navegador sepa como decoficarlos.
Los servlets pueden chequear explícitamente
el soporte para gzip y devolver páginas
HTML
comprimidas
con
gzip
para
navegadores que las soportan, seleccionando
la cabecera de respuesta Content-Encoding
para indicar que están comprimidas con gzip.
En muchos casos, esto puede reducir el
tiempo de descarga por un factor de cinco o
diez.
El idioma que está esperando el navegador, en
el caso de que el servidor tenga versiones en
más de un idioma.
Indica las credenciales de acceso a un recurso
que presenta el usuario.
Información de autorización, usualmente en
respuesta a una cabecera WWW-Authenticate
desde el servidor.
¿Usamos conexiones persistentes? Sí un
servlet obtiene un valor Keep-Alive aquí, u
obtiene una línea de petición indicando HTTP
1.1 (donde las conexiones persistentes son por
defecto), podría ser posible tomar ventaja de
las conexiones persisentes, ahorrando un
tiempo significante para las páginas Web que
incluyen muchas piezas pequeñas (imágenes o
clases de applets). Para hacer esto, necesita
envíar una cabecera Content-Length en la
respuesta, que es fácimente conseguido
escribiendo en un ByteArrayOutputStream, y
preguntando por el tamaño antes de escribir
la salida.
Tipo de codificación para el cuerpo de la
solicitud Content
Tipo de idioma en el cuerpo de la solicitud
Extensión del cuerpo de la solicitud. Para
mensajes POST, cúantos datos se han añadido.
Tipo de contenido del cuerpo de la solicitud
(por ejemplo, texto/html).
Esta cabecera devuelve las cookies a los
Página 2
Encabezados, Métodos y Códigos HTTP
Date
Expect
Forwarded
From
Host
If-Match
If-Modified-Since
If-Unmodified-Since
Link
Max-Forwards
Orig-URL
Pragma
Proxy-Authoritation
Range
Referer
TE
User-Agent
Ortiz Ramírez Diana
servidores que anteriormente le envía al
navegador.
Fecha en que comienza la transferencia de
datos.
Indica que comportamiento del servidor
necesita el cliente.
Utilizado por equipos intermediarios entre el
navegador y el servidor.
Dirección de correo que controla el cliente
(navegador).
Permite especificar que debe enviarse el
documento si ha sido modificado desde una
fecha en particular.
Nombre o IP del host desde donde se conecta
el cliente.
Un cliente que tiene recursos en cache puede
verificar si están actualizados incluyendo este
encabezado. Hay otros encabezados que
también tienen que ver con la caché. IfModified-Since , If-None-Match , If-Range , IfUnmodified-Since .
Esta cabecera indica que el cliente quiere que
la página sólo si se ha cambiado después de la
fecha especificada. El servidor envía un
código, 304, que no sea modificado de
cabecera si no hay resultado más reciente
disponible.
Esta cabecera es el reverso de If-Modified-Ya,
se especifica que la operación debe tener éxito
sólo si el documento es anterior a la fecha
especificada.
Vínculo entre dos direcciones URL.
Cuantas veces la petición del cliente puede ser
reenviada por proxys.
Dirección URL donde se originó la solicitud.
El valor no-cache indica que el servidor
debería devolver un documento nuevo,
incluso si es un proxy con una copia local.
Indica las credenciales de acceso a un proxy
que presenta el usuario.
Indica que porción de recurso (rango de bytes)
recuperar.
Es el URI del recurso desde donde la petición
se ha realizado (generalmente por provenir de
un enlace HTML).
Que codificaciones de transferencia está
dispuesto a recibir el cliente.
Información sobre el agente de usuario
(generalmente navegador) que origina la
petición.
Página 3
Encabezados, Métodos y Códigos HTTP
UA-Pixels, UA-Color, UA-OS, UA-CPU
S.N.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Cabeceras no estándard envíadas por algunas
versiones de Internet Explorer, indicando el
tamaño de la pantalla, la profundidad del
color, el sistema operativo, y el tipo de CPU
usada por el sistema del navegador
Método & Descripción
Cookie[] getCookies()
Devuelve una matriz que contiene todos los objetos Cookie del cliente enviado a esta
solicitud
Enumeration getAttributeNames()
Devuelve una enumeración con los nombres de los atributos disponibles para esta solicitud.
Enumeration getHeaderNames()
Devuelve una enumeración de todos los nombres de encabezado de la solicitud contiene.
Enumeration getParameterNames()
Devuelve una enumeración de objetos String con los nombres de los parámetros contenidos
en esta solicitud.
HttpSession getSession()
Devuelve el actual período de sesiones asociada a esta solicitud, o si la solicitud no tiene un
período de sesiones, crea una.
HttpSession getSession(boolean create)
Devuelve la HttpSession actual asociado con esta solicitud o, si, si no hay ninguna sesión
actual y crear es cierto, devuelve un nuevo período de sesiones.
Locale getLocale()
Devuelve el Locale preferido que el cliente acepta el contenido , sobre la base de la cabecera
Accept-Language.
Object getAttribute(String name)
Devuelve el valor del atributo con el nombre como un objeto, o null si ningún atributo del
nombre dado existe.
ServletInputStream getInputStream()
Recupera el cuerpo de la petición, los datos binarios mediante un ServletInputStream.
String getAuthType()
Devuelve el nombre del esquema de autenticación que se utiliza para proteger el servlet, por
ejemplo, "Basic" o "SSL", o nulo si la JSP no estaba protegido.
String getCharacterEncoding()
Devuelve el nombre de la codificación de caracteres usada en el cuerpo de esta solicitud.
String getContentType()
Devuelve el tipo MIME del cuerpo de la solicitud, o null si el tipo no se conoce.
String getContextPath()
Devuelve la parte de la URI de la solicitud que indica el contexto de la solicitud.
String getHeader(String name)
Devuelve el valor del encabezado de la solicitud se especifica como una cadena.
String getMethod()
Devuelve el nombre del método HTTP con el que se hizo esta solicitud, por ejemplo, GET,
POST, o PUT.
String getParameter(String name)
Devuelve el valor de un parámetro de la petición como una cadena, o null si el parámetro no
existe.
String getPathInfo()
Devuelve información de la ruta adicional asociado con la dirección URL que el cliente envía
cuando se hizo esta petición.
Ortiz Ramírez Diana
Página 4
Encabezados, Métodos y Códigos HTTP
18
19
20
21
22
23
24
25
26
27
28
29
30
String getProtocol()
Devuelve el nombre y versión del protocolo de la solicitud.
String getQueryString()
Devuelve la cadena de consulta que se encuentra en la URL de la petición después de la ruta.
String getRemoteAddr()
Devuelve el protocolo de Internet (IP) del cliente que envió la solicitud.
String getRemoteHost()
Devuelve el nombre completo del cliente que envió la solicitud.
String getRemoteUser()
Devuelve el inicio de sesión del usuario que realiza esta solicitud, si el usuario ha sido
autenticado, o null si el usuario no se ha autenticado.
String getRequestURI()
Devuelve la parte de la URL de esta petición desde el nombre del protocolo hasta la cadena
de consulta en la primera línea de la petición HTTP.
String getRequestedSessionId()
Devuelve el identificador de sesión especificado por el cliente.
String getServletPath()
Devuelve la parte de la URL de esta petición de que llama a la JSP.
String[] getParameterValues(String name)
Devuelve una matriz de objetos String que contienen todos los valores del parámetro de la
petición dado tiene, o null si el parámetro no existe.
boolean isSecure()
Devuelve un booleano que indica si esta solicitud se realizó mediante un canal seguro, como
HTTPS..
int getContentLength()
Devuelve la longitud, en bytes, del cuerpo de la petición y puesto a disposición por el flujo
de entrada, o -1 si la duración no se conoce.
int getIntHeader(String name)
Devuelve el valor de la cabecera de la petición especifica como un entero.
int getServerPort()
Devuelve el número de puerto en el que se recibió esta solicitud.
Ortiz Ramírez Diana
Página 5
Encabezados, Métodos y Códigos HTTP
Encabezados y métodos de Respuesta Http
Encabezado
Allow
Content-Encoding
Content-Language
Content-Length
Content-Type
Content-Type
Date
Expires
Forwarded
Location
Last-Modified
Refresh
Server
Set-Cookie
WWW-Authenticate
Ortiz Ramírez Diana
Significado
Especifica los tipos MIME.
Informa al cliente de los métodos válidos
asociados con el recurso.
Tipo de codificación para el cuerpo de la
respuesta.
Tipo de idioma en el cuerpo de la respuesta.
Extensión del cuerpo de la respuesta.
Indica el tipo MIME de los contenidos. Hay
otros encabezados muy relacionados como
Content-Language , Content-Length , ContentLocation , Content-MD5 , Content-Range o
Content-Encoding .
Tipo de contenido del cuerpo de la respuesta
(por ejemplo, texto/html).
Fecha en que comienza la transferencia de
datos.
Indica la fecha y hora en la que el recurso se
considerará obsoleto.
Utilizado por equipos intermediarios entre el
navegador y el servidor.
Redireccionamiento a una nueva dirección URL
asociada con el documento.
Indica la fecha y hora en la que el recurso
original fue modificado por última vez.
Esta cabecera significa “Recarga esta página o
ve a URL especificada en n segundos". No
significa "recarga esta página o ve la URL
especificada cada n segundos". Por eso tenemos
que enviar una cabecera Refresh cada vez.
Nota: esta cabecera no forma parte oficial del
HTTP 1.1, pero es una extensión soportada por
Netspace e Internet Explorer
Características del servidor que envió la
respuesta
Especifica una Cookie asociada con la página.
Los
servlets
no
deberían
usar
response.setHeader("Set-Cookie", ...), pero en
su lugar usan el método de propósito especial
addCookie de HttpServletResponse.
¿Qué tipo de autorización y domino debería
suministrar el cliente en su cabecera
Authorization? Esta cabecera es necesaria en
respuestas que tienen una línea de estado 401
(Unauthorized).
Por
ejemplo
response.setHeader("WWW-Authenticate",
"BASIC realm=\"executives\"").
Página 6
Encabezados, Métodos y Códigos HTTP
S.N.
Método y Descripción
1
String encodeRedirectURL(String url)
Codifica la dirección URL especificada para su uso en el método sendRedirect o, si
la codificación no es necesaria, devuelve la dirección URL sin cambios.
2
String encodeURL(String url)
Codifica la dirección URL especificada mediante la inclusión del identificador de
sesión en él, o, si la codificación no es necesaria, devuelve la dirección URL sin
cambios.
3
boolean containsHeader(String name)
Devuelve un booleano que indica si el nombre de la cabecera de la respuesta ya se
ha establecido.
4
boolean isCommitted()
Devuelve una indicación booleana si la respuesta ha sido cometida.
5
void addCookie(Cookie cookie)
Añade la cookie especificada a la respuesta.
6
void addDateHeader(String name, long date)
Agrega un encabezado de respuesta con el nombre y la fecha de valor.
7
void addHeader(String name, String value)
Agrega un encabezado de respuesta con el nombre y valor.
8
void addIntHeader(String name, int value)
Agrega un encabezado de respuesta con el nombre dado y el valor entero.
9
void flushBuffer()
Fuerza cualquier contenido en el buffer a ser escrito al cliente.
10
void reset()
Borra cualquier dato que existe en la memoria intermedia, así como el código de
estado y cabeceras.
11
void resetBuffer()
Borra el contenido de la memoria intermedia subyacente en la respuesta sin borrar
encabezados o código de estado.
12
void sendError(int sc)
Envía una respuesta de error al cliente utilizando el código de estado especificado y
limpieza de la memoria intermedia.
13
void sendError(int sc, String msg)
Envía una respuesta de error al cliente con el estado especificado
14
void sendRedirect(String location)
Envía una redirección temporal de respuesta al cliente mediante la dirección URL
redirigir ubicación especificada.
15
void setBufferSize(int size)
Sets the preferred buffer size for the body of the response.
Establece el tamaño del buffer preferido para el cuerpo de la respuesta.
16
void setCharacterEncoding(String charset)
Establece la codificación de caracteres (MIME charset) de la respuesta que se envía
al cliente, por ejemplo, a UTF-8.
17
void setContentLength(int len)
Establece la longitud del cuerpo en el contenido de la respuesta. En los servlets
HTTP, este método establece el protocolo HTTP Content-Length header.
18
void setContentType(String type)
Ortiz Ramírez Diana
Página 7
Encabezados, Métodos y Códigos HTTP
19
20
21
22
23
Establece el tipo de contenido de la respuesta que se envía al cliente, si la respuesta
no se ha confirmado todavía.
void setDateHeader(String name, long date)
Establece una cabecera de respuesta con el nombre y la fecha de valor.
void setHeader(String name, String value)
Establece una cabecera de respuesta con el nombre dado y el valor.
void setIntHeader(String name, int value)
Establece una cabecera de respuesta con el nombre dado y el valor entero.
void setLocale(Locale loc)
Establece la configuración local de la respuesta, si la respuesta no se ha confirmado
todavía.
void setStatus(int sc)
Establece el código de estado para esta respuesta.
Códigos Http
Aquí hay una lista de todas los códigos de estado disponibles en HTTP 1.1 junto con sus
mensajes asociados y su interpretación. Deberíamos ser cuidadosos al utilizar los códigos
de estado que están disponibles sólo en HTTP 1.1, ya que muchos navegadores sólo
soportan HTTP 1.0. Si tenemos que usar códigos de estado específicos para HTTP 1.1, en la
mayoría de los casos querremos chequear explícitamente la versión HTTP de la petición
(mediante el método getProtocol de HttpServletRequest) o reservarlo para situaciones
donde no importe el significado de la cabecera HTTP 1.0.
Códigos 1xx
100 Continue
Mediante este código, el servidor informa al cliente de que éste puede continuar con su
solicitud. El cliente (el navegador, normalmente) tiene dos opciones: enviar las
cabeceras que aún no haya enviado o, si ya había completado la solicitud, ignorar el
código 100 y esperar.
101 Switching Protocols
El servidor indica con este código que acepta un cambio en el protocolo de
comunicación con el cliente. El cambio se producirá inmediatamente después de servir
este código.
Códigos 2xx
Códigos relacionados con solicitudes resueltas con éxito.
200 OK
El documento se ha servido correctamente.
Ortiz Ramírez Diana
Página 8
Encabezados, Métodos y Códigos HTTP
201 Created
Como respuesta a una solicitud aceptada por el servidor, éste crea un nuevo recurso,
que se servirá al cliente inmediatamente.
202 Accepted
Igual que se ha explicado para el código 201, el servidor debe crear un recurso para
atender la solicitud, pero mediante un código 202 el servidor indica que no se
compromete a servir el recurso inmediatamente.
203 Non-Authoritative Information
Se utiliza muy poco. Con este código, el servidor indica al cliente que al servir el
recurso solicitado está alterando la metainformación original de dicho recurso. Por
ejemplo: un servidor responde a una solicitud con un documento en HTML que
incluye el texto íntegro del BOE de una fecha determinada, añadiendo
metainformación adicional que no se incluye en el BOE original, como el tamaño del
documento expresado en número total de caracteres.
204 No Content
El servidor ha recibido y aceptado la solicitud, pero entiende que no es preciso servir
ningún documento como respuesta.
205 Reset Content
Como respuesta a una solicitud, el servidor le indica al cliente, normalmente al
navegador, que debe recargar el mismo documento que originó la solicitud (por
ejemplo, "limpiar" los campos de un formulario)
206 Partial Content
Respuesta del servidor a una solicitud parcial de documento. El navegador,
previamente, había solicitado una parte de un recurso, solicitud ésta que el servidor ha
podido atender correctamente. Un ejemplo: el navegador puede solicitar sólo una
página de un documento PDF; de ser aceptada y correctamente atendida esta solicitud,
el servidor contestaría con un código 206.
Códigos 3xx
Códigos utilizados para informar al navegador de que el documento solicitado existe, pero
no se le va a servir desde la dirección indicada en la solicitud.
300 Multiple Choices
Ortiz Ramírez Diana
Página 9
Encabezados, Métodos y Códigos HTTP
El recurso solicitado se corresponde con algundo de entre una lista de recursos
alternativos. Ha de ser el propio agente de usuario (navegador, normalmente) quien
elija entre los diferentes recursos.
301 Moved Permanently
La URI (dirección relativa) del recurso ya no es la indicada al cursar la solicitud. El
servidor ofrece al cliente la nueva dirección (mediante la cabecera "Location"), para
que el cliente pueda realizar una nueva solicitud de documento.
302 Found
El recurso solicitado ha cambiado provisionalmente de localización (URI). El servidor,
como se ha explicado para el código 301, ofrece al cliente la nueva localización.
Normalmente, el navegador no debería redirigirse hacia la nueva URI sin una
confirmación previa por parte del usuario.
303 See Other
Tiene un sentido similar al código 302. De hecho, la versión 1.0. del protocolo HTTP no
contemplaba el código 303. Indica que la respuesta a la solicitud se puede encontrar en
una localización diferente, y es accesible mediante el método GET. La nueva
localización no se debe considerar un substituto de la URI solicitada por el cliente.
304 Not Modified
El servidor entiende que existe una copia en caché, e informa de que el documento no
ha cambiado: sigue siendo el mismo que el guardado en la memoria caché. Si no es así,
ha de ser la caché la que realice una nueva solicitud no condicionada, es decir, que el
servidor debe atender sin considerar si existe o no una copia en caché del documento.
305 Use Proxy
El servidor informa de que se debe acceder al documento en cuestión utilizando un
proxy, y facilita la URI del proxy.
306
El código 306 existió en anteriores versiones, pero ahora está libre para futuras
especificaciones.
307 Temporary Redirect
El documento se encuentra en otra URI, facilitada por la cabecera "Location".
Ortiz Ramírez Diana
Página 10
Encabezados, Métodos y Códigos HTTP
Códigos 4xx
Códigos relacionados con solicitudes relativas a documentos inexistentes o de acceso
problemático o restringido.
400 Bad Request
La sintaxis de la solicitud es incorrecta.
401 Unauthorized
El acceso al recurso requiere identificación por parte del usuario.
402 Payment Required
De momento, este código no está suficientemente desarrollado. Se espera que lo esté en
el futuro.
403 Forbidden
El servidor rechaza la solicitud, sin ni siquiera ofrecer la posibilidad de que el usuario
se identifique.
404 Not Found
La sintaxis de la solicitud es correcta, pero el servidor no encuentra ningún recurso
cuya URI se corresponda con la de la solicitud.
405 Method Not Allowed
La solicitud se ha hecho empleando un método (GET, POST, HEAD...) que no está
permitido.
406 Not Acceptable
El recurso no cumple las restricciones expresadas por la solicitud. Por ejemplo, se ha
solicitado un documento de texto plano con una URI determinada y el servidor,
aunque encuentra un documento con esa URI, no lo sirve por no cumnlir con el
requisito de ser de texto plano.
407 Proxy Authentication Required
Es parecido al código 401, pero la autentificación del cliente se debe realizar mediante
un proxy.
Ortiz Ramírez Diana
Página 11
Encabezados, Métodos y Códigos HTTP
408 Request Timeout
El cliente ha tardado en realizar la solicitud más tiempo del que el servidor puede
esperar.
409 Conflict
El servidor entiende que existe algún conflicto entre la naturaleza del recurso
solicitado y el tipo de solicitud que ha cursado el cliente. Normalmente, el servidor
debería ofrecer al cliente información suficiente para resolver el conflicto.
410 Gone
El recurso ya no está disponible, y no se espera que lo vuelva a estar en el futuro.
411 Length Required
El servidor no está dispuesto a servir el recurso si el cliente no especifica en su
solicitud una cabecera del tipo "Content-Length" que indique cuál es la longitud del
mensaje de solicitud.
412 Precondition Failed
No se ha cumplido alguna de las condiciones expresadas en las cabeceras de la
solicitud cursada por el cliente.
413 Request Entitiy Too Large
El mensaje de solicitud cursado por el cliente es excesivamente largo.
414 Request URI Too Long
La URI (cadena de caracteres que expresa la localización del documento) es demasiado
larga. Se puede producir cuando el cliente convierte por error un acceso del tipo POST
en uno del tipo GET o cuando se entra en ciertos bucles de redirecciones.
415 Unsupported Media Type
El servidor rechaza la solicitud por incompatibilidad entre el método y el formato
solicitado y los propios del recurso.
416 Requested Range Not Satisfable
El servidor no ha podido resolver satisfactoriamente la cabecera "Range" de la solicitud
del cliente. La respuesta del servidor debería incluir una cabecera "Content-Range"
especificando el tamaño actual del recurso solicitado.
Ortiz Ramírez Diana
Página 12
Encabezados, Métodos y Códigos HTTP
417 Expectation Failed
El valor dado por la cabecera "Expect" de la solicitud no ha podido ser resuelto por el
servidor.
Códigos 5xx
Códigos relacionados con errores producidos en el servidor o en los servidores implicados
en dar respuesta a la solicitud de documento realizada por el cliente.
500 Internal Server Error
Se ha producido un fallo en el servidor, que no ha podido resolver la solicitud.
501 Not Implemented
El servidor no implementa alguna funcionalidad necesaria para resolver la solicitud,
por ejemplo, porque no reconoce el método empleado.
502 Bad Gateway
Un servidor que hace de proxy o gateway no ha obtenido una respuesta adecuada de
un segundo servidor, al cual necesita acceder para atender la solicitud del cliente.
503 Service Unavailable
El servidor no puede atender la solicitud debido, por ejemplo, a una sobrecarga o a
tareas de mantenimiento que obligan a deshabilitar el servicio. Es preceptivo
acompañar este código de una cabecera del tipo Retry-After (Reintentar-Después), que
especifique el tiempo estimado de "caída" del servicio. Si no se especifica, el servidor
no debería enviar este código, sino un código 500.
504 Gateway Timeout
El servidor, que hace las funciones de proxy o gateway, no ha obtenido ninguna
respuesta de un segundo servidor, al cual, como en el caso explicado para el código
502, necesita acceder.
505 HTTP Version Not Supported
Mediante este código, el servidor informa al cliente de que no está preparado para
utilizar la versión del protocolo HTTP que el cliente ha utilizado para lanzar la
petición.
Ortiz Ramírez Diana
Página 13
Descargar