2012-09-11 11 views
5

Hace unos días pregunté this question y no conseguí mucha actividad en él. Y me hizo pensar que quizás esto era porque mi pregunta no tenía sentido.¿Es legítimo http/rest tener solicitudes comprimidas?

Mi comprensión de http es que un cliente (típico navegador) envía una solicitud (get) a un servidor, en mi caso IIS. Parte de esta solicitud es el encabezado de codificación de aceptación, que indica al servidor en qué tipo de codificación le gustaría que el cliente retorne el recurso. Típicamente esto podría incluir gZip. Y si el servidor está configurado correctamente, devolverá el recurso solicitado en la codificación solicitada.

La respuesta incluirá un encabezado Content-Encoding que indica qué compresión se ha aplicado al recurso. También se incluye en la respuesta el encabezado Content-Type que indica el tipo de mime del recurso. Entonces, si la respuesta incluye tanto Content-Type: application/json como Content-Encoding: gzip, el cliente sabe que el recurso es json que ha sido comprimido usando gzip.

Ahora el escenario al que me enfrento es que estoy desarrollando un servicio web para clientes que no son navegadores sino dispositivos móviles, y que en lugar de solicitar recursos, estos dispositivos estarán publicando datos en el servicio.

Así que he implementado un servicio Restfull que acepta la solicitud posterior con json en el cuerpo. Y mis clientes envían sus solicitudes de publicación con Content-Type: Application/json. Pero algunos de mis clientes han solicitado que quieran comprimir su solicitud para acelerar la transmisión. Pero mi entendimiento es que no hay manera de indicar en una solicitud que el cuerpo de la solicitud ha sido codificado usando gZip.

Es decir que no hay un encabezado Content-Encoding para las solicitudes, solo las respuestas.

¿Es este el caso?

¿Es incorrecto el uso de http para intentar comprimir las solicitudes?

Respuesta

3

Según another answer here on SO, está dentro del estándar HTTP tener un encabezado Content-Encoding en la solicitud y enviar la entidad deflactada.

Parece que ningún servidor infla automáticamente los datos, por lo que tendrá que escribir usted mismo el código del lado del servidor (verifique el encabezado de la solicitud y actúe en consecuencia).

Cuestiones relacionadas