Ivan Grinkin 7 years ago
parent
commit
93f8ba2873
1 changed files with 27 additions and 2 deletions
  1. 27 2
      TemplateEngine.md

+ 27 - 2
TemplateEngine.md

@@ -35,11 +35,36 @@ Content-Type: text/html; charset=utf-8
 
 По окончанию обмена данными соединение разрывается, и следующее обращение к серверу происходит с **чистого листа**.
 
-### Сессия
+### Сессия и Cookie
 
 Под сессией подразумевается определенный контекст, в котором происходит обмен данными между клиентом (браузером) и сервером. В этом контексте хранится определенная информация, касающаяся только конкретного клиента
 (например залогиненного пользователя). Как это работает:
-- При создании сессии сервер создает уникальный ключ. Ключ должен быть достаточно большим, что бы его было **крайне** маловероятно подобрать. 
+- При создании сессии (например, при удачном логине) сервер создает уникальный ключ. Ключ должен быть достаточно большим, что бы его было **крайне** маловероятно подобрать. 
+```
+POST /login/ HTTP/1.1
+Host: example.com
+Accept: text/html
+ 
+login=user&password=eightasterisks
+```
 - Ключ отсылается в браузер в заголовке вместе с ответом. Браузер запоминает его на определенное время для определенного URL
+```
+HTTP/1.1 200 OK
+Content-Type: text/html; charset=utf-8
+Set-Cookie: key=LongAndWeirdRandomSecureCharset
+ 
+<html>
+<head>...</head>
+<body>...</body>
+</html>
+```
+Обратите внимание на заголовок **Set-Cookie**. Именно он в себе хранит уникальный ключ, который будет запомнен браузером
 - Браузер при каждом запросе к серверу отсылает ему этот ключ, подтверждая таким образом, что данное соединение - от конкретного пользователя.
+```
+GET / HTTP/1.1
+Host: example.com
+Accept: text/html
+Cookie: key=LongAndWeirdRandomSecureCharset
 
+
+```