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