2012-08-14 13 views
5

Zastanawiam się, czy następujący pomysł działa wbrew duchowi i/lub literom HTTP Content Negotiation i HTTP Compression.Negocjacja/kompresja zawartości HTTP: Użyj Base64 z Accept-Encoding/Content-Encoding?

Sytuacja

Klient HTTP żąda zasobu:

HTTP GET /image.jpeg HTTP/1.1 
Accept: image/jpeg 

powraca serwera HTTP tego zasobu:

HTTP/1.1 200 OK 
Content-Type: image/jpeg 

Idea

Klient uważa, że ​​to dobry pomysł, aby zwrócić się do zasobu zakodowany:

HTTP GET /image.jpeg HTTP/1.1 
Accept: image/jpeg 
Accept-Encoding: base64 

honory Server tego wniosku i zwraca zasób zakodowane:

HTTP/1.1 200 OK 
Content-Type: image/jpeg 
Content-Encoding: base64 

Pytanie

I "Nie jestem całkiem zadowolony z tego pomysłu. Kompresja HTTP, dla której używane są nagłówki Accept-Encoding i Content-Encoding, jest około kompresująca dane, a nie o zwiększająca jego rozmiar jako Base64.

Czy użycie wartości base64 jako wartości dla tych nagłówków stanowi naruszenie ducha i/lub litery negocjacji treści HTTP i kompresji zawartości HTTP?

Odpowiedz

6

RFC 2616 section 3.5 (Kopalnia nacisk):

kodowania treści są głównie wykorzystywane w celu umożliwienia dokument mają być skompresowane lub w inny sposób z pożytkiem przekształcone bez utraty tożsamości jego podstawowej typu nośnika i bez utraty Informacja.

Twój pomysł jest idealnie zgodny z "duchem i literą" HTTP.