Четко расскажите о файлах cookie (с внутренним push-уведомлением в конце)

Байду внешний интерфейс сервер браузер

предисловие

Файлы cookie часто используются в веб-разработке, и это также технология, о которой любят спрашивать интервьюеры. Многие люди могут быть такими же, как и я, когда знали только одно, а не другое. Когда дело доходит до веб-хранилища, они ответят. localStorage, sessionStorage и файлы cookie. , а затем некоторые различия идут туда и обратно, преимущества и недостатки файлов cookie также очевидны, но после того, как вы прочитаете этот контент, у вас будет другая уникальная информация о файлах cookie, я надеюсь спросить о эта технология в будущем, или в проекте Вы будете иметь дело с этим.Я использовал его во время моей стажировки, так что это действительно не так просто, как сказать это в устной форме.Давайте войдем в мир куки

что такое печенье

Это очень просто сказать. Учащиеся, знающие http, должны знать, что http — это протокол, который не сохраняет состояние. Что не сохраняет состояние, так это то, что сервер не знает, обращается ли к нему тот же браузер. технология может быть решена.Позвольте мне кратко рассказать об этом здесь.Это вставить токен в запрос, а затем принести эту штуку на сервер при отправке запроса.Этот метод подвержен ошибкам, поэтому есть появление файлов cookie .

cookie

Что такое куки? Файл cookie — это файл, который управляет состоянием браузера. У него есть имя и значение. Невидимыми являются домен, путь и т. д., о которых мы расскажем позже.

принцип cookie

cookieSend

Когда вы посещаете веб-сайт в первый раз, браузер отправляет запрос. После того, как сервер ответит на запрос, он поместит файл cookie в ответный запрос. Когда браузер отправит второй запрос, он примет файл cookie и сервер будет идентифицировать пользователя. Личность, конечно, сервер также может изменить содержимое файла cookie

Файлы cookie не являются междоменными

Я приведу несколько примеров: когда я открываю веб-страницу Baidu и хочу установить файл cookie, мои инструкции выглядят следующим образом.

javascript:document.cookie='myname=laihuamin;path=/;domain=.baidu.com';
javascript:document.cookie='myname=huaminlai;path=/;domain=.google.com';

Когда я помещу эти два оператора в консоль браузера для запуска, вы найдете одну точку, обратите внимание, что значения двух файлов cookie выше не совпадают, ясно видно

cookieDontDomain
Очевидно, что только тот файл cookie, домен которого .baidu.com действительно может быть установлен, привязан к доменному имени, поэтому упомянутый выше непересекающийся домен означает, что его нельзя использовать под разными доменными именами. доменное имя. Заказать одно доменное имя

свойства файлов cookie

Существует много атрибутов файлов cookie, мы можем взглянуть на следующую картинку, а затем проанализируем их один за другим.

cookieAttr

name

Это очевидно, что означает имя файла cookie. Имена файлов cookie, привязанных к доменному имени, не могут совпадать, и значение того же имени будет перезаписано. Заинтересованные студенты могут попробовать. Я действительно использовал это в проекте.

value

Это атрибут, который есть у каждого файла cookie, который представляет значение файла cookie, но это не то, что я хочу здесь сказать, потому что я вижу в Интернете два утверждения, а именно:
1. Значение файла cookie должно быть закодировано в URL.
2. Не обязательно кодировать значение куки, в исходном документе также указано, что нужно кодировать только три символа: точка с запятой, запятая и пробел

Эту вещь нужно разделить на две части, сначала посмотрите на картинку ниже

cookievalue

Я видел заявление в Интернете:

Поскольку спецификация файла cookie заключается в том, что имя/значение не может содержать точки с запятой, запятые и пробелы, поэтому, чтобы не беспокоить пользователя и с учетом совместимости сервера, любые данные, хранящиеся в файле cookie, должны быть закодированы.

domain

Это относится к доменному имени, которое представляет доменное имя, связанное с файлом cookie. Если оно не установлено, оно будет автоматически привязано к текущему домену оператора выполнения. Также стоит отметить, что доменное имя второго уровня в унифицированное доменное имя не может использоваться как взаимозаменяемое.

path

Атрибут пути по умолчанию имеет значение '/', и это значение соответствует маршруту в Интернете. Например:

//默认路径
www.baidu.com
//blog路径
www.baidu.com/blog

Почему я говорю соответствие, то есть, когда ваш путь установлен в /blog, он фактически привязывает файлы cookie к /blog, /blogabc и т. д.

срок действия куки

cookieMaxAge

Срок действия указан в атрибуте Expires на рисунке. Как правило, файл cookie браузера сохраняется по умолчанию. Когда браузер закрывается для завершения сеанса, файл cookie также удаляется. Это рисунок выше — сеанс (хранилище сеанса ).

Если вы хотите, чтобы файл cookie существовал в течение определенного периода времени, вы можете установить свойство Expires на узел будущего времени.Expires представляет текущее время.Это свойство было постепенно заменено нашим следующим героем - Max-Age

Max-Age указывается в секундах. Если Max-Age положительный, файл cookie будет удален через Max-Age секунд. Если Max-Age отрицательный, это означает временное хранение, и файл cookie не будет создан. , он будет существовать только в течение памяти браузера, и он будет действителен только в открытом окне или подокне браузера. После закрытия браузера файл cookie исчезнет. Когда Max-Age будет равен 0, что произойдет, удалите файл cookie, потому что файл cookie сам механизм не настроен на удаление файла cookie, недействительный файл cookie будет автоматически удален браузером из памяти, поэтому он понимает, что файл cookie недействителен.

secure

cookieSecure

Этот атрибут переводится как безопасный, http не только не имеет состояния, но и является небезопасным протоколом, который легко взломать. Например, когда вы просматриваете веб-страницы на мобильном телефоне, появляется ли значок China Mobile? Когда это свойство установлено значение true, этот файл cookie будет передаваться только по защищенным протоколам, таким как https и ssl.

  • Совет: этот атрибут не шифрует файл cookie клиента и не может гарантировать абсолютную безопасность.

HttpOnly

Этот атрибут часто тестируется во время собеседований. Если для этого атрибута установлено значение true, значение файла cookie не может быть получено через js-скрипт, что может эффективно предотвращать атаки xss. См. официальный документ MDN:

httpOnly

Об операционных файлах cookie js

document.cookie умеет читать и записывать куки, смотрите две инструкции:

//读取浏览器中的cookie
console.log(document.cookie);
//写入cookie
document.cookie='myname=laihuamin;path=/;domain=.baidu.com';

Как установить куки на сервер

Что касается того, как установить файлы cookie, нам просто нужно открыть консоль и посмотреть, что находится в заголовке HTTP-запроса и заголовке ответа:

setCookie

Сервер использует setCookie для установки файлов cookie. Обратите внимание, что если вы хотите установить несколько файлов cookie, вам нужно написать больше setCookies. Из приведенного выше рисунка также видно, что запросы могут передавать файлы cookie на серверную часть.

Суммировать

Куки так много говорила, и я сам многому научился. Я также надеюсь поделиться этим с вами. Может быть, я недостаточно хорошо пишу. Пожалуйста, простите меня. Если вы считаете, что я пишу хорошо, дайте мне звезду.гитхаб-адрес

задвинуть

В момент эпидемии только вступив в большую компанию, свежие студенты могут иметь хорошую защиту. Если небольшая компания не может выжить, увольняет или не может стать постоянной, она будет очень пассивной, если ее заставят набирать социально.

Автор работает в Ali Retail. Студенты, которые хотят попасть внутрь, могут отправить электронное письмо по адресу 1445509994@qq.com. Массивный ХК! ! ! Вы также можете добавить группу q: 912253914. Пожалуйста, помогите с вашим резюме в свободное время.