Показать полную графическую версию : Отсылка части cookies
hasherfrog
17-02-2006, 11:52
Приветствую всех. У меня маленький, но хитрый вопрос.
1. Сначала хотел уяснить: файл cookies, установленный на странице, отсылается на сервак при очередном запросе? Подробнее: я набираю URL; туда идёт запрос; оттуда просят куки; я отсылаю куки; мне дают страницу. Так?
2. Можно ли (если я ничего не перепутал) отсылать не весь кукис для данной страницы, а только часть? Как-нибудь так... Или куки, передаваемый на сервак, и так "резаный" и пересылается только запрошенная часть, а не весь файл?
hasherfrog
17-02-2006, 11:59
Объясню суть проблемы подробней, наверное.
Я хочу у клиента на машине хранить информацию по конкретной странице. Эту инфу я пишу в куки. Но не будет ли эта инфа вместе с остальным содержимым куки ездить по сети туда-сюда при перезагрузке страницы? Если будет, то как бы сделать так, чтобы на сервер отсылался куки без моей "добавленной" информации?
Понятно одно - ничего не понятно или непонятно чего Вы хотите ;)
Поставили кукис, считали с той страницы на которой установили. Как он может ездить туда-сюда? ;)
vadimiron
17-02-2006, 19:59
hasherfrog
Я тоже честно говоря не очень понял
Кукисы устанавливаются клиенту только тогда, когда мы вызвали для этого специальную команду, во всех остальных случаях мы можем просто читать или вообще ничего с ними не делать
То есть если нет команды, то и кукисы не устанавливаются, не считываются и не изменяются
Prisoner
17-02-2006, 21:16
Куки автоматом передаются на сервер при каждом обращении к странице. Дело только в том, что если сервер Х установил куки, то сервер Y их не получит. Т.е. область видимости кук - хост который из завел. Зону видимости можно регулировать с помощью параметров domain и path - расширять и сужать. Более подробно (http://www.netscape.com/newsref/std/cookie_spec.html) у создателя.
hasherfrog
18-02-2006, 09:45
Prisoner
Вот смотрите. Есть букмарклет, который ставит коммент для страницы.
javascript:q7Hm8=prompt('Comment...','');if(q7Hm8!=null){pVj5D=86400000*prompt('Expires in...(days)','15');dT9v=new Date;dT9v.setTime(dT9v.getTime()+pVj5D);void(document.cookie='cOmM3enT='+escape(q7Hm8)+'; expires='+dT9v.toGMTString())}else{void(null)}
Есть "обратный" - читает коммент для страницы.
javascript:dL8=document.cookie.indexOf('cOmM3enT');if(dL8!=-1){d7n=document.cookie.substring(dL8+9,document.cookie.length);uHm=d7n.indexOf(';');dUP=(uHm==-1)?d7n.length:uHm;void(prompt('Comment:',unescape(d7n.substring(0,dUP))))}else{alert('No comment.')}
А вот теперь перефразирую вопрос конкретно для данного примера:
1. будет ли передаваться на forum.oszone.net часть кукиса cOmM3enT?
2. если да, то как её оставить у меня, но не передавать на oszone?
3. будет ли передаваться мне обратно с forum.oszone.net часть кукиса cOmM3enT?
4. если нет, то как обеспечить её созранность у меня?
Prisoner
18-02-2006, 12:41
1) если кука была установлена для страницы на forum.oszone.net (без заполнения поля domain), то она (не часть, а весь набор переменных в куках для этого адреса) будет передаваться каждое обращение к страницам этого адреса. Если задействовать параметр domain, то можно ограничить отдачу кук адресу oszone.net, указав domain=forum.oszone.net
2) чуточку недопонимаю: если установили для аforum.oszone.net куку, то зачем ее не передавать-то? Другое дело, если нужно для разных страниц устанавливать разные куки. В этом случае поможет параметр path.
3) при обращении к страницам этого адреса - да
А если честно, то у меня и сейчас такое чувство, что я что-то недопонимаю :)
vadimiron
18-02-2006, 15:59
Другое дело, если нужно для разных страниц устанавливать разные куки.
В этом случае даже path не обязателен, можно просто разные имена кукам давать и всё
hasherfrog
Cookie, установленные для страницы (домена, части сайта), передаются серверу с каждым HTTP-запросом (при обращении к этой странице, части сайта) как часть HTTP заголовка. Целиком, естественно. А уже на стороне сервера можно разгребать переменные-значения и использовать нужные.
hasherfrog
20-02-2006, 19:32
mar, прояснилось. Но всё-таки непонятно... А если я кукис устанавливаю тут, на стороне клиента, руками (т.е. букмарклетом) - он тогда чей? Я имею в виду, если я укажу домен вида localhost - он мой будет? Сразу после перегрузки страницы, например, я его смогу прочитать? А на сервер он не "уедет", так?
hasherfrog
ну почему не уедет. У меня, например, на localhost апач стоит. И куки работаеют по-настоящему :)
а если я руками укажу для любого сервера, на который никакого запроса не пошлю (в том числе и localhost), то ничего никуда и не уедет, все правильно.
hasherfrog
22-03-2006, 01:17
Вот хотел вернутся опять к теме. Пишу тут простенького бота, встал вопрос о том, как хранить инфу. Ещё раз хочу уточнить. Если браузер ставит на конкретную веб-страницу кукис с "доменом localhost", этот кукис не уедет на веб-сервер при перезагрузке страницы? и есть ли какой-нибудь способ (попроще, типа echo-form веб-сервиса или расширения для мозиллы), который позволял бы узнать, какие кукисы куда ушли?
Vlad Drakula
22-03-2006, 10:46
hasherfrog
есть плагин под EI (HTTP headers вроде) он позволяет просматривать заголовки которыми отбениваются сервер и клиент.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.