2017-05-08 33 views
8

Wysyłam żądania do chmury CDN w chmurze i widzę bardzo frustrujące zachowanie. W chrome i firefox, żądanie przeszło odpowiedni nagłówek accept-encoding:gzip, deflate.Safari nie przekazuje kodowania akceptującego: gzip, deflate

Safari nie robi tego, a zatem dostaje nieskompresowaną wersję pliku. To jest prosty tag skryptu w dokumencie HTML. Nie mogę ustawić nagłówków.

samo doc produkuje wniosek o następującym nagłówku/przeglądarce combo

nagłówki Safari

-h 'Cache-Control: max-age = 0' \ H „If-Modified -Od: Mon, 08 maja 2017 18:01:40 GMT '\ '

Chrome Główki

: Metoda: GET : ścieżka /main-b54b8739d65dfbd36152.js : Schemat: https zaakceptować: / akceptować-encoding: gzip, deflate, SDCH, br Accept-Language: en-US, en; q = 0,8 cache-control: no-cache Pragma: no-cache

także odpowiednie inspektorzy internetowych zawiera dodatkowe informacje, na safari, Safari Screen shot

I w chromie, enter image description here

Dodatkowo, prośba trwa 3 razy dłużej podczas safari. 55 ms w chrome i 150ms w safari, mniej więcej.

Zostawiłem pewne informacje, aby chronić moją prywatność. Dzięki za pomoc!

+0

Przypuszczam, że chociaż Safari nie wysyła tego nagłówka w żądaniu, większość, jeśli nie wszystkie serwery, nadal będzie wyświetlać treść zakodowaną w gzipie, ponieważ jest to obecnie standardem. Właśnie to zweryfikowałem, dostaję odpowiedź z 'content-encoding: gzip' pomimo braku nagłówka' accept-encoding' w żądaniu. Istnieje jednak wiele okoliczności, które mogą uniemożliwić serwerowi kompresję. Nie pozwól też tylko zaufać narzędziom programistycznym Safari do raportowania rozmiaru przekazywanego za pomocą kabla. (Jako komentarz, ponieważ to tylko niejasne wskazówki, a nie dobrze zbadana odpowiedź). Zasadniczo: jesteś pewien? :) –

+0

@HuguesMoreau Dodałem kilka dodatkowych szczegółów i chętnie udzielę wszelkich informacji. – dandlezzz

+0

Nie sądzę, że problemem jest kompresja. Na co powinieneś zwrócić uwagę, to skompresowany: tak. Co oznacza, że ​​podczas transferu zastosowano kompresję. Jednak współczynnik kompresji i rozmiary wydają się być zepsute w Safari. Nawet nagłówki żądań wydają się również błędnie raportowane. Do obrony Apple'a miałem trochę czasu na kompresję debugowania kompresji i stwierdziłem, że wszystkie przeglądarki błędnie raportują użycie kompresji w taki czy inny sposób. Ale to niewiele pomaga. Jeśli masz kontrolę nad serwerem, proponuję zalogować nagłówek Accept-Encoding i rozmiar odpowiedzi po stronie serwera (log dostępu zazwyczaj pomaga z tym ostatnim). – Seva

Odpowiedz

3

Safari używa innej konwencji nazewnictwa w swoich narzędziach programistycznych, co jest zgodne z twoimi obserwacjami. Powołując się od this answer,

[1] Encoded = uncompressed filesize, from server 
[2] Decoded = uncompressed filesize, locally 
[3] Transferred = uncompressed file size + headers sent and received 
[4] Content-Length = compressed file sent, from server 

Proszę sprawdzić właściwość content-length aby sprawdzić, czy to naprawdę skompresowane.