-
11. Data: 2009-02-15 18:25:39
Temat: Re: Adres strony z wynikami wyszukiwania
Od: Bartosz Derleta <b...@f...pl>
Piotrek pisze:
> Bartosz Derleta pisze:
>
>> A ja bym to sobie POST-em przekazywał. IMHO nienajgorsze wyjście ;)
>
> POST - wysyłasz
> GET - pobierasz
>
> Po coś ktoś wymyślił ten podział
Mhm, ok.
IMHO wyniki wyszukiwania nie są jakąś rzeczą, do której się jakoś
nagminnie linkuje, a jeśli już, to raczej się z tych linków za długo nie
korzysta. Może więc rozwiązanie już powszechnie stosowane na forach
dyskusyjnych, a mianowicie:
- POST z formularza z kryteriami zapytania
- Utworzenie zbioru wyników po stronie serwera, zapisanie ich w pliku
tymczasowym z wygenerowanym identyfikatorem tego zbioru (ewentualnie
samych warunków wyszukiwania w przypadku dużego ruchu)
- Header 304 na (przykładowo) szukaj?uid=id-zbioru-wynikow&strona=1
+ okresowe (załóżmy co 3 dni) czyszczenie starych plików ze zbiorami
Co uważacie o takim rozwiązaniu?
--
Pozdrawiam,
Bartosz Derleta
-
12. Data: 2009-02-15 18:58:18
Temat: Re: Adres strony z wynikami wyszukiwania
Od: porneL <n...@p...net>
On Sun, 15 Feb 2009 18:25:39 -0000, Bartosz Derleta <b...@f...pl> wrote:
> IMHO wyniki wyszukiwania nie są jakąś rzeczą, do której się jakoś nagminnie
linkuje, a jeśli już, to raczej się z tych linków za długo nie korzysta.
Czemu nie? Można sobie dodać zakładkę i obserwować ceny w sklepie
internetowym/odłożyć decyzję na później. Można przesłać e-mailem komuś link do
wyników wyszukiwania "zobacz, te są fajne" i taki link może leżeć w skrzynce pare
dni.
Jak ktoś to podlinkuje wyniki u siebie na stronie (np. na blogasku "zobaczcie jakie
fajne foobary tam mają"), to dostajesz PR (pod warunkiem, że ci linki nie zdychają po
3 dniach).
> - POST z formularza z kryteriami zapytania
POST nie jest do "odbierania". POST jest do zapytań, które mają ważne efekty uboczne
i których nie można wysłać drugi raz bez pytania użytkownika (np. kupienie czegoś).
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.htm
l
Wyszukiwanie jest generalnie tylko czytaniem czegoś bez specjalnych efektów
ubocznych, więc zdecydowanie powinno używać tylko GET.
> - Utworzenie zbioru wyników po stronie serwera, zapisanie ich w pliku
> tymczasowym z wygenerowanym identyfikatorem tego zbioru (ewentualnie
> samych warunków wyszukiwania w przypadku dużego ruchu)
> - Header 304 na (przykładowo) szukaj?uid=id-zbioru-wynikow&strona=1
>
> + okresowe (załóżmy co 3 dni) czyszczenie starych plików ze zbiorami
To brzmi jak prymitywny caching z kompletnie zbędnym przekierowaniem (zakładam, że
304 to pomyłka i miało być 303).
Jeśli do tego linki/identyfiaktory nie będą powtarzalne, to to po prostu głupi pomysł
-- niepotrzebnie tworzysz sobie miliony martwych linków.
--
http://pornel.net
this.author = new Geek("porneL");
-
13. Data: 2009-02-15 19:15:30
Temat: Re: Adres strony z wynikami wyszukiwania
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Sun, 15 Feb 2009 17:13:09 +0100, red napisał(a):
> To już faktycznie cudowanie :) Linki z nazwami parametrów mają kolejną
> zaletę - łatwo podmienić parametr i wiadomo co się podmienia i trudniej
> się pomylić niż przy takiej propozycji jak podałeś.
>
> Jeżeli ma się awersję to do typowego GETa (choć jest to najlepsze
> rozwiązanie co już zostało wspomniane) to można pokusić się o taki
> lekki rewrite:
Tylko _po co_?
Zastanawia mnie to straszne parcie na "upiększanie" adresów na siłę.
Kolejna niczym nieuzasadniona moda ery web 2.0.
Artykuł podrzucony przez porneL-a zamyka sprawę.
--
Borys Pogoreło
borys(#)leszno,edu,pl
-
14. Data: 2009-02-15 19:19:26
Temat: Re: Adres strony z wynikami wyszukiwania
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Sun, 15 Feb 2009 19:25:39 +0100, Bartosz Derleta napisał(a):
> - POST z formularza z kryteriami zapytania
> - Utworzenie zbioru wyników po stronie serwera, zapisanie ich w pliku
> tymczasowym z wygenerowanym identyfikatorem tego zbioru (ewentualnie
> samych warunków wyszukiwania w przypadku dużego ruchu)
> - Header 304 na (przykładowo) szukaj?uid=id-zbioru-wynikow&strona=1
>
> + okresowe (załóżmy co 3 dni) czyszczenie starych plików ze zbiorami
>
> Co uważacie o takim rozwiązaniu?
A to jest z kolei jak najbardziej sensowne z punktu widzenia
niepotrzebnego zarzynania maszyny. Tylko IMO nie ma sensu ukrywać
parametrów zapytania. Wpis w cache możesz identyfikować po tym właśnie
zbiorze parametrów lub choćby po ich MD5 (po normalizacji).
--
Borys Pogoreło
borys(#)leszno,edu,pl
-
15. Data: 2009-02-15 19:51:48
Temat: Re: Adres strony z wynikami wyszukiwania
Od: "Marek Butrym" <d...@o...pl>
Witam,
Wielkie dzięki za dyskusję.
Ostatnie pytanie.
Robiąc GET-a zamieniają mi sie polskie znaki na &liczba co fatalnie wygląda
w polu adresowym przeglądarki.
Co trzeba zrobić by polskie znaki były explicite pokazywane / przesyłane?
Pozdrawiam,
Marek
-
16. Data: 2009-02-15 20:05:17
Temat: Re: Adres strony z wynikami wyszukiwania
Od: porneL <n...@p...net>
On Sun, 15 Feb 2009 19:51:48 -0000, Marek Butrym <d...@o...pl> wrote:
> Witam,
>
> Wielkie dzieki za dyskusje.
>
> Ostatnie pytanie.
> Robi?c GET-a zamieniaj? mi sie polskie znaki na &liczba co fatalnie
> wygl?da
Nie &liczba, tylko %liczba albo (prawidłowiej - w utf8) %liczba%liczba
> w polu adresowym przegl?darki.
> Co trzeba zrobiae by polskie znaki by?y explicite pokazywane / przesy?ane?
Używać kodowania UTF-8, które jest jedynym słusznym dla URL-i. Nawet mimo tego nie
wszystkie przeglądarki będą pokazywały polskie znaki w adresie - tak to już niestety
jest i nic na to nie można poradzić.
Gdy sam konstruujesz URL-e, to pamiętaj o zaaplikowaniu urlencode() do wszystkich
kluczy i wartości w query string. Niezakodowanie znaki spoza ASCII są niedozwolone w
URL-ach i będą dawały różne dziwne rezultaty (po urlencode() wszystko przesyła się
bez problemu).
BTW: napraw sobie czytnik.
--
http://pornel.net
this.author = new Geek("porneL");
-
17. Data: 2009-02-15 20:54:11
Temat: Re: [OT] Adres strony z wynikami wyszukiwania
Od: Bartosz Derleta <b...@f...pl>
porneL pisze:
> (zakładam, że 304 to pomyłka i miało być 303).
Trochę offtopicznie, zapytam.
Czy po przesłaniu formularza (załóżmy dodanie artykułu) metodą POST
należy użyć 303 Moved Temporarily czy 304 See Other?
Ja osobiście używam tego drugiego, 303 nie ufam bo UA może użyć tej
samej metody, co podczas pierwszego zapytania (czyli POST), gdy po 304
obowiązkowo musi wykonać zapytanie GET.
Jak powinno się to wykonywać prawidłowo? A może w ogóle nie powinno się
wykonywać przekierowań po wysłaniu żądania metodą POST?
--
Pozdrawiam,
Bartosz Derleta
-
18. Data: 2009-02-15 22:02:42
Temat: Re: [OT] Adres strony z wynikami wyszukiwania
Od: porneL <n...@p...net>
On Sun, 15 Feb 2009 20:54:11 -0000, Bartosz Derleta <b...@f...pl> wrote:
>> (zakładam, że 304 to pomyłka i miało być 303).
>
> Trochę offtopicznie, zapytam.
>
> Czy po przesłaniu formularza (załóżmy dodanie artykułu) metodą POST
> należy użyć 303 Moved Temporarily czy 304 See Other?
303 = See Other
304 = Not Modified (to nie przekierowanie, tylko odpowiedź na If-Modified-Since,
If-None-Match, itp.)
> Jak powinno się to wykonywać prawidłowo? A może w ogóle nie powinno się
> wykonywać przekierowań po wysłaniu żądania metodą POST?
Po POST 301/302 nie powinny być używane.
303 jest właściwe, jeśli chcesz GET. 307 jeśli chcesz drugi POST.
--
http://pornel.net
this.author = new Geek("porneL");
-
19. Data: 2009-02-15 22:06:53
Temat: Re: [OT] Adres strony z wynikami wyszukiwania
Od: Bartosz Derleta <b...@f...pl>
porneL pisze:
> On Sun, 15 Feb 2009 20:54:11 -0000, Bartosz Derleta <b...@f...pl>
> wrote:
>
>>> (zakładam, że 304 to pomyłka i miało być 303).
>>
>> Trochę offtopicznie, zapytam.
>>
>> Czy po przesłaniu formularza (załóżmy dodanie artykułu) metodą POST
>> należy użyć 303 Moved Temporarily czy 304 See Other?
>
> 303 = See Other
> 304 = Not Modified (to nie przekierowanie, tylko odpowiedź na
> If-Modified-Since, If-None-Match, itp.)
Ups... mea culpa.
Fakt, miało być 303, 302 to moved temporarily, 301 to perm.
:)
--
Pozdrawiam,
Bartosz Derleta
-
20. Data: 2009-02-16 10:32:16
Temat: Re: Adres strony z wynikami wyszukiwania
Od: Maciej Łebkowski <m...@e...com>
Dnia 15-02-2009 o 20:15:30 Borys Pogoreło <b...@p...edu.leszno> napisał(a):
>> Jeżeli ma się awersję to do typowego GETa (choć jest to najlepsze
>> rozwiązanie co już zostało wspomniane) to można pokusić się o taki
>> lekki rewrite:
[...]
> Zastanawia mnie to straszne parcie na "upiększanie" adresów na siłę.
> Kolejna niczym nieuzasadniona moda ery web 2.0.
Bo ludzie na opak zrozumieli pojecie "niceurl". dla wiekszosci jest
to po prostu "link bez ?, & itp". niestety, wciaz z "nice" ma malo
wspolnego.
--
Maciej Łebkowski