Encabezados HTTP | ETag

ETag o Entity Tag es un encabezado de tipo de respuesta que funciona como un validador para permitir que el cliente realice requests condicionales. Hace que las requests de revalidación sean más eficientes al activar encabezados de solicitud que ayudan con la validación de caché web que hace un uso económico del ancho de banda de la red. 

ETag se genera como identificación para recursos de navegador específicos. Cada vez que el usuario abre el mismo recurso, el navegador envía un pequeño token para verificar si esta versión del recurso que ya está presente en el caché HTTP del navegador coincide con la versión actual en el servidor web. Si el recurso coincide, entonces el servidor web no necesita enviar una respuesta completa. Esto hace que el proceso sea más rápido y ahorra datos. 

Sintaxis:

ETag : "etag-value"   (strong validation)
ETag : W/"etag-value"  (weak validation)   

Directivas:  este encabezado acepta dos directivas como se mencionó anteriormente y se describe a continuación:

  • “etag-value”: Es una string de caracteres ASCII entre comillas dobles. Se genera un nuevo valor cada vez que cambia el recurso del navegador y es único. No existe una especificación HTTP sobre el orden del valor generado. Por lo tanto, el método de generación de valor depende completamente del servidor web.
  • W/: Esto es un símbolo de validación débil. Son muy fáciles de generar en comparación con las etiquetas de validación sólidas, pero difieren en la realización de un proceso de comparación. Una comparación débil considera dos etiquetas equivalentes si sus etiquetas opacas coinciden carácter por carácter, independientemente de que una o ambas estén etiquetadas como «débiles». Mientras que una comparación fuerte considera dos etiquetas equivalentes solo si ambas coinciden carácter por carácter y ambas etiquetas no son débiles.

Trabajo de ETag con encabezados de solicitud: 

  • Encabezado If-Match: esto se usa principalmente cuando varios agentes pueden estar trabajando en el mismo recurso, por lo tanto, para evitar sobrescrituras accidentales al usar métodos como POST, PUT, DELETE, etc. Aquí, un valor de encabezado ETag para un recurso en particular está contenido dentro un encabezado If-Match para comprobar si, al realizar la acción especificada, el recurso sufre algún cambio o no. Se muestra el error 412 Precondition Failed si no se produce la coincidencia. También se puede utilizar para abortar una solicitud si la representación actual no coincide total o parcialmente con la solicitud anterior.
ETag : "21e92a357b3434b5aa"
If-Match : "21e92a357b3434b5aa"
  • Encabezado If-None-Match: este encabezado se utiliza cuando la respuesta ya almacenada de un sitio web específico visitado previamente por el usuario ha caducado. Aquí, el servidor genera el valor If-None-Match para la versión actual y lo compara con el valor ETag almacenado en el navegador del usuario. Se muestra un código de estado 304 No modificado si ambos valores coinciden. La comparación débil debe usarse en este escenario al comparar etiquetas de entidad.
If-None-Match : "21e92a357b3434b5aa"

Ejemplos: 

ETag: "21e92a357b3434b5aa"  (strong validation)
ETag: W/"21e92a457b3434b5aa"  (weak validation)

Navegadores compatibles: los navegadores son compatibles con el encabezado HTTP | El encabezado ETag se enumeran a continuación:

  • Borde de Microsoft
  • Google Chrome
  • Mozilla Firefox
  • Safari
  • Ópera
  • explorador de Internet

Publicación traducida automáticamente

Artículo escrito por shreyanshisingh28 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *