SPDY znajdzie się w standardzie HTTP 2.0?

28.01.2012 18:45, Autor: Grzegorz Niemirowski (gniemirowski), Kategoria: News
NewsImage

Mark Nottingham, przewodniczący HTTP Working Group (HTTPbis) wezwał do włączenia SPDY do specyfikacji wersji 2.0 standardu HTTP 2.0.

SPDY to zbiór pomysłów przedstawionych przez firmę Google, które mają przyspieszyć ładowanie się stron internetowych poprzez różne modyfikacje używanego obecnie standardu HTTP 1.1. Te pomysły to m.in. kompresja nagłówków, priorytetyzacja pakietów oraz multipleksowanie. Ten ostatni termin odnosi się do propozycji, aby można było pobierać wiele plików w jednym zapytaniu. Obecnie przeglądarka tworzy nowe połączenia dla każdego elementu strony internetowej, który jest oddzielnym plikiem. Konieczne są więc oddzielne połączenia nie tylko dla grafiki, obiektów Flash czy filmów, ale też dla skryptów JavaScript i stylów CSS, które nie są osadzone w kodzie strony internetowej. Oznacza to często dziesiątki połączeń do serwera WWW. Jeśli HTTP Working Group wdroży usprawnienia a twórcy serwerów WWW i przeglądarek je zaimplementują, będziemy mogli cieszyć się szybszym ładowaniem stron internetowych. Poparcie Nottinghama dla SPDY przybliża tę perspektywę.

W ramach SPDY Google proponuje też zmiany w protokole TCP, który sięga korzeniami roku 1974 i niewiele się zmienił od czasu publikacji jego czwartej wersji w 1981 roku. Nie widać też szans na zmiany w najbliższej przyszłości. Proponowane przez Google ulepszenia to zmniejszenie czasu, po którym pakiet uznaje się za utracony z 3 sekund do 1, zwiększenie okna przeciążenia (congestion window) z 3 do 10 pakietów oraz wdrożenie protokołu TCP Fast Open.

r   e   k   l   a   m   a

Komentarze (12)  

Avatar
marcino83 (niezalogowany) | 28.01.2012 18:52#1

Hmm bardzo ciekawy pomysł

Avatar
Paweł_922 (niezalogowany) | 28.01.2012 19:12#2

stylów CSS, nie styli

AvatarUżytkownik jest nieaktywny
Shaki81 | 28.01.2012 19:51#3

No fajnie, tylko zastanawiam się czy nie jest to tylko fanaberia kilku firm celem ... bo ja wiem zwiększeniem objętości specyfikacj czy jak?

AvatarUżytkownik jest nieaktywny
gniemirowski | 28.01.2012 20:06#4

@Shaki81: chyba nie mówisz serio :) Wiadomo, że chodzi o kasę. Sprawniej działające WWW -> więcej kasy z usług internetowych. A przy okazji promocja siebie, tzn. Google, jako innowacyjnej firmy. Pracownicy Google musieli by być wielkimi nerdami, żeby mieć fanaberię polegającą na modyfikacji jakiegoś zakurzonego RFC.

Avatar
Aninom (niezalogowany) | 28.01.2012 21:10#5

@Shaki81?
Fanaberia? Nie, po prostu interes Google.
Szybsze otwieranie się stron oznacza szybsze ich przeglądanie. Na wielu stronach są reklamy, które stanowią główne źródło przychodów Google. Więc chyba oczywiste, dlaczego chcą, żebyśmy tych stron przeglądali więcej, zamiast marnować czas czekając na ich załadowanie.

AvatarUżytkownik jest nieaktywny
Jaahquubel_ | 28.01.2012 21:13#6

Szybsze ładowanie strony = więcej reklam wciśniętych w tym samym czasie.

AvatarUżytkownik jest nieaktywny
SyntaxError | 28.01.2012 21:29#7

@Jaahquubel_ ogólniej to szybsze ładowanie stron -> mniejsze obciążenie serwerów -> większy zysk ;)

AvatarUżytkownik jest nieaktywny
NIC_pl | 28.01.2012 22:43#8

E tam. Trzeba wywalić cały stos protokołów i zastąpić go jednym a porządnym. I co 15 lat zmieniać, bo czasy i możliwości się zmieniają. Dzisiejsze prędkości na X lat będą niewielkie, np. 10000 Tbps, i trzeba z tego korzystać. Pomyślmy wprowadźmy protokół NICI :)

Dzielony oktetami.
(adres zmiennej długości: src)(adres zmiennej długości: dst)(typ CRC zmiennej długości)(CRC zmiennej długości)(długość paczki zmiennej długości)(lista typ-wartość parametrów opcjonalnych, patrz przykład z CRC)(dane...)

Zmienna długość polega że nie ma ustalonej wielkości pola, minimum to 2 oktety. Innymi słowy pole składa się z długości pola wyrażonego jedynkami z przodu i właściwego pola wartości, np. 0b1111110 0x01 0x02 0x03 0x04 0x05 0x06; ilość jedynek z przodu oznacza ile oktetów jest przeznaczonych na dane. Upraszcza to analizę protokołu czyli uprości sprzęt a zapewni nieograniczone możliwości, przy niewielkiej straci objętości. Oczywiście ilość poprzedzających jedynek może być nieograniczona :) Ale muszą kończyć się zerem i być dzielone oktetami.

W opcjonalnych parametrach zaimplementuje się wszelkiej maści ulepszenia, jak np. retransmisje, optymalizacje dla aplikacji, szyfrowania, itp. Wartości typów będzie ustalać jedna organizacja, czyli będą to ustandaryzowane typy. Nigdy więcej wartości zarezerwowanych. W końcu nie ma co rezerwować, bo ograniczeń nie ma. Aha, długość wartości za typem określa sam typ.

Dwa typy będą specjalne. VENDOR START i VENDOR END. Między tymi typami będzie lista typów specjalna dla zastosować różnych vendorów. Także numerowanych od 1 z wyłączeniem specjalnej wartości dla VENDOR END. Oczywiście typ VENDOR START w wartości będzie VENDOR ID zmiennej długości :) Inne typy mogą mieć stałą wielkość (ustalany przez TYP w specyfikacji)

W ten sposób protokół będzie prosty do napisania "w sprzęcie". Bo będzie jeden specjalny parser dla listy typ-wartość i wystarczy zwykły switch-case by oprogramować wartości typów.

W szczególności jeden z typów powinien nazywać się PORT i za wartość winien mieć numer portu. I jeszcze od razu typ THREAD, który w wartości będzie mieć numer wątku do którego winny lecieć dane w jednym porcie. Takie jakieś multipleksowanie.

Mam nadzieję że protokół jest jasny i nieograniczony.

Protokół NICI jest na licencji "róbta z tym co chceta; nawet praw autorskich nie potrzebuję tu". Bo czy ktoś go opatentuje czy nie ja go i tak zaimplementuję jeśli zechcę. A na razie nie chcę, bo mam inne zajęcia, ale chcę coś zrobić dla dobra ludzkości :)

Avatar
Rafiki (niezalogowany) | 29.01.2012 14:11#9

Aż ciśnie się na usta [klawiaturę?]: "Dopiero teraz?"
Wg mnie to za mało, aby uczynić HTTP 2.0, raczej 1.5.

Avatar
-ignorant- (niezalogowany) | 29.01.2012 15:47#10

"Obecnie przeglądarka tworzy nowe połączenia dla każdego elementu strony internetowej, który jest oddzielnym plikiem. Konieczne są więc oddzielne połączenia nie tylko dla grafiki, obiektów Flash czy filmów, ale też dla skryptów JavaScript i stylów CSS, które nie są osadzone w kodzie strony internetowej."

Proszę sprawdzić nagłówek HTTP 1.1 Connection: keep-alive. Czy powyższe stwierdzenie jest nadal prawdziwe?

AvatarUżytkownik jest nieaktywny
gulczkwas11 | 29.01.2012 15:50#11

bardzo dobry pomysł i mam nadzieję że to będę mógł przetestować zanim przez ACTA internet będzie filtrowany, to wtedy i tak tego nie odczujemy

AvatarUżytkownik jest nieaktywny
przemo_li | 29.01.2012 19:41#12

@-ignorant-

HTTP 1.1 zakłada że każde połączenie jest trwałe (co przy Apache 2.2 oznacza 5 sek).

Dodaj komentarz

Zasady publikowania komentarzy
Autor
Treść
 
Polecamy
Testujemy: Manta Smart TV Box

Internet w telewizorze
Recenzja MSI WindTop AE2410

Powiew świeżości?
Test Garmin Forerunner 610

Osobisty asystent treningowy
Top programy
  •  
Top programy ostatnie 7 dni
  •  
Top programy ostatnie 30 dni
  •  
Skanery antywirusowe
skaner av