Autor | Zpráva | ||
---|---|---|---|
Yuhů Profil |
#1 · Zasláno: 28. 10. 2005, 04:34:36
Když nějakým způsobem (třeba přes mod_alias nebo přes PHP) na požadavek A vrátím přesměrovávací odpověď 301 a Location míří na stránku B, zajímalo by mě, jak to pak přesně probíhá.
Dozví se klient, že je stránka A přesměrovávaná? Sáhne si pak na stránku B sám? Nebo server iniciativně na požadavek A vrátí stránku B? (pozor, nemyslím podstrčení přes mod_rewrite, tam to samozřejmě tak funguje) Proč to chci vědět -- kdyby se požadavek skutečně vracel na klienta, pak by některé přesměrovávací konstrukce mohly pěkně zdržovat. |
||
Leo Profil |
#2 · Zasláno: 28. 10. 2005, 09:41:52
A co ti brani nainstalovat si treba do Firefoxu rozsireni Live HTTP Headers a podivat se, jak komunikace probiha doopravdy? Pokud je to pres PHP pak si klient vyzada znovu stranku na adrese uvedene v HTTP hlavicce Location.
Leo |
||
Leo Profil |
#3 · Zasláno: 28. 10. 2005, 09:45:12
Server nemuze na pozadavek na adresu URL1 poslat kod 200 OK a zmenit URL2 v adresnim radku prohlizece, prece. Muze poslat presmerovaci hlavicku (3xx) a klient zaridi zbytek. Takze pokud mod_alias zmeni URL je ve hre jeste dalsi pozadavek klienta. Doporucil bych ti kurz HTTP co ucim, ale zatim je jen v Brne. Leo
|
||
thingwath Profil |
#4 · Zasláno: 28. 10. 2005, 13:02:10
Nebo se mrknout třeba etherealem.
Klient si dal požadavek GET nějaká_URL a server na něj odpoví. Odpovídá 301, což se posílá klientovi. A ten si musí poslat nový požadavek na novou URL, na kterou mu už server řekne OK a pošle data té stránky. Pokud přesměrováváš, nemůže server iniciativně vrátit hned data té stránky na kterou ho přesměrováváš, to by nebylo žádné přesměrování :-) O zdržování bych moc nemluvil, objem dat je minimální, záleží to víceméně jenom na odezvě. Celé je to zrychlené ještě tím, že dnes už není problém posílat více dotazů v rámci jednoho spojení, takže si tím taky šetříme čas. Ale přesměrovávat více než jednou je trochu nesystémové a zavání to bordelem na straně serveru ;-) |
||
Kajman Profil * |
#5 · Zasláno: 28. 10. 2005, 13:11:08
A někteří klienti si přesměrování 301 zapamatují a příště rovnou žádají o novou adresu.
|
||
Leo Profil |
#6 · Zasláno: 28. 10. 2005, 13:51:58
Jo, 301 znamena Moved Permanently, a klient by priste uz mel pouzit nove URL. Leo
|
||
michaelkiller Profil |
#7 · Zasláno: 28. 10. 2005, 15:21:42
Doporucil bych ti kurz HTTP co ucim, ale zatim je jen v Brne.
Mohol by som sa spytat, kde konkretne vyucujete tento kurz a ake kurzy okrem tohoto? Dakujem za odpoved. |
||
Leo Profil |
#8 · Zasláno: 28. 10. 2005, 15:44:58
"Mohol by som sa spytat, kde konkretne vyucujete tento kurz a ake kurzy okrem tohoto?"
Počítačová škola Gopas, Kurz HTTP Jinak jeste JavaScript, a obcas i neco jineho kolem tvorby stranek. Leo |
||
Yuhů Profil |
#9 · Zasláno: 29. 10. 2005, 02:37:48
Leo > Takze pokud mod_alias zmeni URL je ve hre jeste dalsi pozadavek klienta.
OK, to jsem si myslel. Takže čistě teoreticky přesměrování zpomaluje doručení stránky. Je potom vhodné vůbec přesměrování používat jako standardní metodu? Například jak to dělá Root.cz nebo msn.com? Podle mě ne. Jaké tam asi tak může být zpoždění? Malé, nebo dvojnásobné? |
||
Yuhů Profil |
#10 · Zasláno: 29. 10. 2005, 02:38:45
Kajman> A někteří klienti si přesměrování 301 zapamatují a příště rovnou žádají o novou adresu.
nevíš prosím, kteří klienti to dělají? Díky. |
||
Leo Profil |
#11 · Zasláno: 31. 10. 2005, 02:09:37
"nevíš prosím, kteří klienti to dělají?"
Napriklad Firefox urcite, zalezi ovsem na kesovani (kes je misto, kam se info o tom, ze misto stranky 1 si ma vyzadat primo stranku 2 protoze puvodne dostal kod 301 uklada). Leo |
||
Yuhů Profil |
#12 · Zasláno: 31. 10. 2005, 02:39:09
Díky za odpověď.
302 si ukládají také? Nebo to je přesně ten praktický rozdíl mezi přesměrováním 301 a 302? |
||
Leo Profil |
#13 · Zasláno: 31. 10. 2005, 10:50:04
"Nebo to je přesně ten praktický rozdíl mezi přesměrováním 301 a 302?"
Podle specifikace HTTP ano, praxe je slozitejsi - prohlizece se lisi ve svem chovani ne az na urovni HTTP, nebo CSS2, ale uz v HTTP. Zalezi na kesovani, verzi HTTP, a metode - jakmile je prvotni pozadavek metodou POST, pridavaji se dalsi komplikace a rozdily. Leo |
||
Kajman Profil * |
#14 · Zasláno: 31. 10. 2005, 10:52:06
> 302 si ukládají také? Nebo to je přesně ten praktický rozdíl mezi přesměrováním 301 a 302?
Onen zmiňovaný firefox si informaci o 302 asi taky ukládá, ale nepoužije ji příště, takže v praxi to u něj tak funguje... pokud má (nejspíš v histori) uložené, že z té adresy byly nějaké 301, jde rovnou na tu koncovou adresu. Při 302 hopká znovu, což je v plném souladu definice obou kódů. A co se toho roota týče, tak oni to mají možná na testování, zda jsou zapnuté cookies + nějaké statistiky. Určitě je to pomalejší, ale vzhledem k tomu, že chodí jen pár řádků a těch požadavků zrovna u tohoto serveru chodí hodně, tak se to tam ztratí. |
||
Leo Profil |
#15 · Zasláno: 31. 10. 2005, 10:56:21
"pokud má (nejspíš v histori) uložené, že z té adresy byly nějaké 301, jde rovnou na tu koncovou adresu."
Jen poznamka - uklada to do kese, ne do historie. Leo |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0