Nagłówek HTTP - cookie - kilka pytań

0

Witam!

Mam kilka prostych pytań co do ciasteczek w nagłówki http, prosiłbym o pomoc :)

Czy

Cookie: nazwa=4programmers; sesja=12345; id=56789;

to to samo co:

Cookie: nazwa=4programmers; sesja=12345; 
Cookie: id=56789;

Czy w takim przypadku serwer poprawnie przyjmie obydwa przypadki? czy to jest to samo? czy jeden i drugi przypadek zostanie tak samo odczytany?

Drugie pytanie podobne, co sie stanie jak w naglówku będzie takie coś:

Cookie: nazwa=4programmers; sesja=12345;
Cookie: nazwa=4programmers; sesja=12345; id=56789;

Czy serwer odczyta te cookie które było jako drugie? czy wartość id której nie ma w pierwszej linijce zostanie zauważona? po prostu: czy wszystkie te trzy zmienne zostaną odczytane, mimo że dwie z nich się powtarzają?

Pozdrawiam!

0

sprawdź?
wydaje mi się że to nie jest unormowane więc każdy serwer może to interpretować w inny sposób, ale raczej przyjmie tylko najnowszą wersję

po co sobie utrudniać życie wprowadzając takie nieścisłości?
no chyba że piszesz swój serwer i chcesz wiedzieć jak masz to interpretować no ale wtedy powinieneś mieć pootwierane dokumenty RFC a nie pytać na forum

0

Sprawdź?
Jak bym mógł na czysto to sprawdzić to bardzo chętnie bym to zrobił, nie zaglądając tutaj :) Niestety serwer nie jest mój. Program pisze w c+

0

to zainstaluj u siebie identyczny
a jakoś nie mogę sobie wyobrazić co to za program który nie może się zdecydować jakie cookie wysłać
podpowiem że normalne przeglądarki wysyłają wszystkie ciastka w jednym nagłówku oddzielając je średnikiem

0

Standard RFC nie służy tylko do tego żeby ładnie wyglądał, do cholery.

0

Kurde, jak zawsze to samo wszędzie. Kogo tak naprawe interesuje co ja chce zrobić, skoro nie zapytałem o to.

Przeglądarka wysyła mi w jeden linii, program wysyła mi w 2 linijkach (indy 10).
JA chciałem się tylko dowiedzieć czy są jakieś różnice?

0
Legalnl napisał(a)

Niestety serwer nie jest mój.

To użyj cudzego. Co za problem craftować request do 4p? Masz ciastka od logowania, wyślij 2x Cookie, w tym jeden zmieniony, potem odwróć kolejność, porównaj zachowanie. Zawsze możesz też PRZECZYTAĆ PIEPRZONY MANUAL™.

Legalnl napisał(a)

Przeglądarka wysyła mi w jeden linii, program wysyła mi w 2 linijkach (indy 10).
JA chciałem się tylko dowiedzieć czy są jakieś różnice?

Nagłówki powinny być unikatowe, jeden z wyjątków stanowi Set-Cookie, ze względu na opcjonalne parametry. Zachowanie w wypadku dublowania nagłówków jest zależne od serwera i zainstalowanego oprogramowania, czasem bierze pierwszy, czasem ostatni, co przydaje się do fingerprintingu. Indy ssie.

0

no skoro tak robi gotowa biblioteka i nikt się na nią nie skarży to chyba działa
a skoro działa to jaka może być różnica?

ewentualnie w logach requesty z Twojego programu będą się wyróżniać

0

czy działa czy nie to nie wiem dlatego pytam czy sa jakieś różnice, od kilku dni probuje podpiac się pod pewną strone z ogłoszeniami i loguje się poprawnie, a ogłoszenia już nie wysyła. Kiedyś wysyłało a od tygodnia już nie wysyła, dołozyli nowych ciastek które obsłużyłem jednak coś mi nie pasuje, nagłówki wyglądają praktycznie jak w przeglądarce, nie mam już pomysłów co można jeszcze zmienić. a nie pasują mi te cookie i ich wieloliniowość

0

To nie kombinuj tylko przeczytaj MANUAL.

0
unikalna_nazwa napisał(a)

no skoro tak robi gotowa biblioteka i nikt się na nią nie skarży to chyba działa
a skoro działa to jaka może być różnica?

Tak, tak, dlatego połowa lokalnego rzucania paniami do towarzystwa odbywa się w dziale Delphi i dotyczy Indy.

RFC 2616:2.1 napisał(a)

*rule
The character "" preceding an element indicates repetition. The
full form is "<n>
<m>element" indicating at least <n> and at most
<m> occurrences of element. Default values are 0 and infinity so
that "(element)" allows any number, including zero; "1element"
requires at least one; and "12element" allows one or two.
...
#rule
A construct "#" is defined, similar to "
", for defining lists of
elements. The full form is "<n>#<m>element" indicating at least
<n> and at most <m> elements, each separated by one or more commas
(",") and OPTIONAL linear white space (LWS). This makes the usual
form of lists very easy; a rule such as

( *LWS element *( *LWS "," *LWS element ))
can be shown as
1#element

RFC 2616:4.2 napisał(a)

Multiple message-header fields with the same field-name MAY be
present in a message if and only if the entire field-value for that
header field is defined as a comma-separated list [i.e., #(values)].
It MUST be possible to combine the multiple header fields into one
"field-name: field-value" pair, without changing the semantics of the
message, by appending each subsequent field-value to the first, each
separated by a comma.

RFC 2109:4.2.2 napisał(a)

set-cookie = "Set-Cookie:" cookies
cookies = 1#cookie
cookie = NAME "=" VALUE *(";" cookie-av)
...

>    Informally, the Set-Cookie response header comprises the token Set-
>    Cookie:, followed by a comma-separated list of one or more cookies.
>    Each cookie begins with a NAME=VALUE pair, followed by zero or more
>    semi-colon-separated attribute-value pairs.


 > ##### RFC 2109:4.3.4 napisał(a)
> <code>   cookie          =       "Cookie:" cookie-version
                           1*((";" | ",") cookie-value)
...

Note: For backward compatibility, the separator in the Cookie header
is semi-colon (;) everywhere. A server should also accept comma (,)
as the separator between cookie-values for future compatibility.

Chyba wszystko jasne?

1 użytkowników online, w tym zalogowanych: 0, gości: 1