1 / 25

Веб-программирование

Веб-программирование . Скрипов Сергей Александрович skripov@csu.ru 2010. HTTP cookie.

Download Presentation

Веб-программирование

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Веб-программирование Скрипов Сергей Александрович skripov@csu.ru 2010

  2. HTTP cookie Ку́ки — фрагмент данных, созданный веб-сервером и хранимый на компьютере пользователя в виде файла, который веб-клиент каждый раз пересылает веб-серверу в HTTP-запросе при попытке открыть страницу соответствующего сайта.

  3. HTTP cookie • Используются для: • аутентификации пользователя; • хранения персональных предпочтений и настроек пользователя; • отслеживания состояния сессии доступа пользователя; • ведения статистики о пользователях.

  4. HTTP cookie • Установка cookie • Браузер отправляет веб-серверу HTTP-запрос. • Сервер отвечает, отправляя запрашиваемую страницу вместе сHTTP-заголовком. Там может содержаться указание браузеру сохранить куки • Если куки поддерживаются браузером и их приём включён, браузер отправляет их обратно серверу с каждым последующим запросом

  5. HTTP cookie

  6. HTTP cookie • Атрибуты cookie • имя/значение • срок действия • путь • доменное имя • Set-Cookie: name=newvalue; expires=date; path=/; domain=.example.org.

  7. HTTP cookie • Атрибуты cookie • Домен и путь говорят браузеру, что куки должна быть отправлена обратно на сервер при запросах URL для указанного домена и пути. Если они не указаны, используются домен и путь запрошенной страницы. • Дата истечения указывает браузеру, когда удалить куки. Если срок истечения не указан, куки удаляется с закрытием браузера. • Дата истечения указывается в формате «Нед, ДД-Мес-ГГГГ ЧЧ:ММ:СС GMT». Например: • Set-Cookie: RMID=732423sdfs73242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net

  8. HTTP cookie

  9. HTTP cookie Cookies в PHP int setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]]) Функция setcookie должна быть вызвана до любого другого вывода

  10. HTTP cookie Для обработки cookie на сервере используется массив $_COOKIE[“имя cookie“]

  11. HTTP cookie <?php if(isset($_POST["name"])) setcookie("name",$_POST["name"],time()+3600); ?> <html> <head><title>Cookie test</title></head> <body> <form method="POST"> <input type=text value="<?php echo $_COOKIE["name"]?>" name="name"> <input type=submit> </form> </body> </html>

  12. HTTP cookie #include <stdio.h> int main(int argc, char *argv[], char *env[]) { int i=0; printf("Content-type: text/html\n"); printf("Set-Cookie: name=user;expires=expires=Fri,1-Apr-2011 23:59:59 GMT;path=/~summer;domain=.csu.ac.ru\n"); printf("Set-Cookie: pass=123;expires=expires=Fri,1-Apr-2011 23:59:59 GMT;path=/~summer;domain=.csu.ac.ru\n"); printf("\n"); while(env[i++]) printf("%s<br>",env[i-1]); return 0; }

  13. Сессии PHP Веб-сервер не поддерживает постоянного соединения с клиентом, и каждый запрос обрабатывается, как новый, безо всякой связи с предыдущими. Сессии – механизм для хранения пользовательских данных на сервере

  14. Сессии PHP Данные сессии обычно хранятся в виде файла во временной директории Пользователю (браузеру) для доступа к сессии выдается идентификатор вида 9ebca8bd62c830d3e79272b4f585ff8f Сами данные сессии хранятся в файле во временной директории с именем вида sess_9ebca8bd62c830d3e79272b4f585ff8f

  15. Сессии PHP • Хранение идентификатора на стороне клиента: • cookies. • Браузер сохраняет cookie с именем PHPSESSID • (PHPSESSID=9ebca8bd62c830d3e79272b4f585ff8f ) • Php cценарий на сервере получив идентификатор открывает соответствующий файл • (sess_9ebca8bd62c830d3e79272b4f585ff8f )

  16. Сессии PHP • Хранение идентификатора на стороне клиента: • PHP просматривает всю сформированную страничку и дописывает к каждой ссылке и к каждой форме передачу идентификатора сессии

  17. Сессии PHP Хранение идентификатора на стороне клиента: <a href="/index.php">Index</a> - исходная <a href="/index.php?PHPSESSID=9ebca8bd62c830d3e79272b4f585ff8f">Index</a> <input type="hidden" name="PHPSESSID" value="9ebca8bd62c830d3e79272b4f585ff8f">

  18. Сессии PHP Пример //sess.php <?php session_start(); $_SESSION['test']='Hello world!'; echo "Hello" ?>

  19. Сессии PHP Пример //sess1.php <?php session_start(); echo $_SESSION['test']; session_unset();

  20. PHP Предопределенные переменные $_SERVER массив, содержащий такую информацию, как headers/шапки, paths/пути и размещение скриптов. Вхождения в этом массиве создаются web-сервером.

  21. PHP Предопределенные переменные $_SERVER['REQUEST_METHOD'] Какой метод запроса был для доступа к странице; например, 'GET','POST'.

  22. PHP • Предопределенные переменные • $_SERVER['HTTP_ACCEPT_CHARSET'] • Содержимое шапки Accept-Charset: из текущего запроса, если имеется. • Пример: 'iso-8859-1,*,utf-8'.

  23. PHP • Предопределенные переменные • $_SERVER['HTTP_USER_AGENT'] • Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)

  24. PHP • Предопределенные переменные • $_SERVER['REMOTE_ADDR'] • IP-адрес, с которого пользователь просматривает текущую страницу.

  25. PHP • Предопределенные переменные • $_SERVER['HTTP_X_FORWARDED_FOR'] • IP-адрес, с которого пользователь просматривает текущую страницу.

More Related