Spec-Zone.ru › OpenJDK 17

Класс HttpCookie

java.lang.Object
java.net.HttpCookie
Все реализуемые интерфейсы:
Cloneable
public final class HttpCookie extends Object implements Cloneable
Объект HttpCookie представляет HTTP-cookie, который переносит информацию о состоянии между сервером и пользовательским агентом. Cookie широко используется для создания состоятельных сессий.

Существует 3 спецификации HTTP-cookie:

Черновик Netscape
RFC 2109 - http://www.ietf.org/rfc/rfc2109.txt
RFC 2965 - http://www.ietf.org/rfc/rfc2965.txt

Класс HttpCookie может принимать все эти 3 формы синтаксиса.

С тех пор:
1.6

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

Конструктор Описание
HttpCookie(String name, String value)
Создает cookie со заданным именем и значением.

Краткое описание методов

Модификатор и тип Метод Описание
Object clone()
Создает и возвращает копию этого объекта.
static boolean domainMatches(String domain, String host)
Утилитарный метод для проверки, находится ли имя хоста в домене.
boolean equals(Object obj)
Проверяет равенство двух HTTP-cookie.
String getComment()
Возвращает комментарий, описывающий назначение этого cookie, или null, если cookie не имеет комментария.
String getCommentURL()
Возвращает URL комментария, описывающий назначение этого cookie, или null, если cookie не имеет URL комментария.
boolean getDiscard()
Возвращает атрибут удаления cookie.
String getDomain()
Возвращает имя домена, установленное для этого cookie.
long getMaxAge()
Возвращает максимальный срок действия cookie в секундах.
String getName()
Возвращает имя cookie.
String getPath()
Возвращает путь на сервере, по которому браузер возвращает этот cookie.
String getPortlist()
Возвращает список портов cookie.
boolean getSecure()
Возвращает true, если отправка этого cookie должна быть ограничена защищенным протоколом, или false, если его можно отправить с использованием любого протокола.
String getValue()
Возвращает значение cookie.
int getVersion()
Возвращает версию протокола, с которой соответствует этот cookie.
boolean hasExpired()
Указывает, истек ли срок действия этого HTTP-cookie.
int hashCode()
Возвращает хэш-код этого HTTP-cookie.
boolean isHttpOnly()
Возвращает true, если этот cookie содержит атрибут HttpOnly.
static List<HttpCookie> parse(String header)
Создает cookie из строки заголовка set-cookie или set-cookie2.
void setComment(String purpose)
Устанавливает комментарий, описывающий назначение cookie.
void setCommentURL(String purpose)
Устанавливает URL комментария, описывающий назначение cookie.
void setDiscard(boolean discard)
Указывает, должен ли пользовательский агент безусловно удалить cookie.
void setDomain(String pattern)
Указывает домен, в рамках которого должен быть представлен этот cookie.
void setHttpOnly(boolean httpOnly)
Указывает, должен ли cookie считаться HTTP-Only.
void setMaxAge(long expiry)
Устанавливает максимальный срок действия cookie в секундах.
void setPath(String uri)
Указывает путь для cookie, по которому клиент должен вернуть cookie.
void setPortlist(String ports)
Указывает список портов cookie, которые ограничивают порты, в которые cookie может быть отправлен обратно в заголовке Cookie.
void setSecure(boolean flag)
Указывает, должен ли cookie отправляться только по защищенному протоколу, такому как HTTPS или SSL.
void setValue(String newValue)
Присваивает новое значение cookie после создания cookie.
void setVersion(int v)
Устанавливает версию протокола cookie, с которой соответствует этот cookie.
String toString()
Строковое представление заголовка cookie, которое соответствует определению соответствующей спецификации cookie, но без начального токена "Cookie:".

Методы, объявленные в классе java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание конструкторов

HttpCookie

public HttpCookie(String name, String value)
Создаёт cookie с заданным именем и значением.

Имя должно соответствовать RFC 2965. Это означает, что оно может содержать только символы ASCII алфавитно-цифрового набора и не может содержать запятые, точки с запятой или пробелы, а также не может начинаться с символа $. Имя cookie нельзя изменить после создания.

Значение может быть любым, которое сервер выбирает для отправки. Его значение, вероятно, интересует только сервер. Значение cookie можно изменить после создания с помощью метода setValue.

По умолчанию cookie создаются в соответствии со спецификацией RFC 2965 для cookie. Версию можно изменить с помощью метода setVersion.

Параметры:
name - String, определяющее имя cookie
value - String, определяющее значение cookie
Исключения:
IllegalArgumentException - если имя cookie содержит недопустимые символы
NullPointerException - если name является null
См. также:
  • setValue(java.lang.String)
  • setVersion(int)

Подробное описание методов

parse

public static List<HttpCookie> parse(String header)
Создаёт cookie из строки заголовка set-cookie или set-cookie2. Синтаксис RFC 2965, раздел 3.2.2, set-cookie2, указывает, что одна строка заголовка может содержать более одного определения cookie, поэтому это статический вспомогательный метод, а не другой конструктор.
Параметры:
header - String, определяющая заголовок set-cookie. Заголовок должен начинаться со слова "set-cookie", "set-cookie2" или вообще не иметь ведущего слова.
Возвращает:
Список cookie, разобранных из строки заголовка
Исключения:
IllegalArgumentException - если строка заголовка нарушает синтаксис спецификации cookie или имя cookie содержит недопустимые символы.
NullPointerException - если строка заголовка null

hasExpired

public boolean hasExpired()
Указывает, истек срок действия данного HTTP cookie или нет.
Возвращает:
true для указания истечения срока действия HTTP cookie; в противном случае, false

setComment

public void setComment(String purpose)
Устанавливает комментарий, описывающий назначение cookie. Комментарий полезен, если браузер отображает cookie пользователю. Комментарии не поддерживаются cookie версии 0 Netscape.
Параметры:
purpose - String, определяющий комментарий для отображения пользователю
См. также:
  • getComment()

getComment

public String getComment()
Возвращает комментарий, описывающий назначение этого cookie, или null, если cookie не имеет комментария.
Возвращает:
String с комментарием или null, если нет
См. также:
  • setComment(java.lang.String)

setCommentURL

public void setCommentURL(String purpose)
Устанавливает URL комментария, описывающего назначение cookie. URL комментария полезен, если браузер отображает cookie пользователю. URL комментария поддерживается только в RFC 2965.
Параметры:
purpose - String, определяющий URL комментария для отображения пользователю
См. также:
  • getCommentURL()

getCommentURL

public String getCommentURL()
Возвращает URL комментария, описывающий назначение этого cookie, или null, если у cookie нет URL комментария.
Возвращает:
String с URL комментария или null, если нет
См. также:
  • setCommentURL(java.lang.String)

setDiscard

public void setDiscard(boolean discard)
Указывает, должен ли пользовательский агент безоговорочно удалить cookie. Это атрибут только RFC 2965.
Параметры:
discard - true указывает на безоговорочное удаление cookie
См. также:
  • getDiscard()

getDiscard

public boolean getDiscard()
Возвращает атрибут удаления cookie
Возвращает:
boolean для представления атрибута удаления cookie
См. также:
  • setDiscard(boolean)

setPortlist

public void setPortlist(String ports)
Устанавливает список портов cookie, который ограничивает порт(ы), на которые cookie может быть отправлен обратно в заголовке Cookie.
Параметры:
ports - String, определяющий список портов, который является серией цифр, разделённых запятыми
См. также:
  • getPortlist()

getPortlist

public String getPortlist()
Возвращает атрибут списка портов cookie
Возвращает:
String содержит список портов или null, если нет
См. также:
  • setPortlist(java.lang.String)

setDomain

public void setDomain(String pattern)
Устанавливает домен, в пределах которого этот cookie должен быть представлен.

Формат имени домена задаётся RFC 2965. Имя домена начинается с точки (.foo.com) и означает, что cookie доступен для серверов в заданной зоне DNS (например, www.foo.com, но не a.b.foo.com). По умолчанию cookie возвращаются только серверу, который их отправил.

Параметры:
pattern - String, содержащий имя домена, в пределах которого этот cookie виден; форма соответствует RFC 2965
См. также:
  • getDomain()

getDomain

public String getDomain()
Возвращает имя домена, установленное для этого cookie. Формат имени домена задаётся RFC 2965.
Возвращает:
String, содержащий имя домена
См. также:
  • setDomain(java.lang.String)

setMaxAge

public void setMaxAge(long expiry)
Устанавливает максимальный срок действия cookie в секундах.

Положительное значение указывает, что cookie истечёт через заданное количество секунд. Обратите внимание, что значение является максимальным сроком действия, когда cookie истечёт, а не текущим возрастом cookie.

Отрицательное значение означает, что cookie не хранится постоянно и будет удалён при выходе браузера. Ноль приводит к удалению cookie.

Параметры:
expiry - целое число, определяющее максимальный срок действия cookie в секундах; если ноль, cookie должен быть немедленно удалён; иначе максимальный срок действия cookie не указан.
См. также:
  • getMaxAge()

getMaxAge

public long getMaxAge()
Возвращает максимальный срок действия cookie в секундах. По умолчанию -1, что cookie сохраняется до закрытия браузера.
Возвращает:
Целое число, определяющее максимальный срок действия cookie в секундах
См. также:
  • setMaxAge(long)

setPath

public void setPath(String uri)
Устанавливает путь для cookie, к которому клиент должен вернуть cookie.

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

Обратитесь к RFC 2965 (доступен в Интернете) для получения дополнительной информации о настройке имён путей для cookie.

Параметры:
uri - String, определяющий путь
См. также:
  • getPath()

getPath

public String getPath()
Возвращает путь на сервере, на который браузер возвращает этот cookie. Cookie доступен для всех подпутей на сервере.
Возвращает:
String, определяющий путь, который содержит имя сервлета, например, /catalog
См. также:
  • setPath(java.lang.String)

setSecure

public void setSecure(boolean flag)
Указывает, должен ли cookie отправляться только с помощью защищённого протокола, такого как HTTPS или SSL.

Значение по умолчанию — false.

Parameters:
flag - Если true, cookie может быть отправлен только по защищённому протоколу, например, HTTPS. Если false, он может быть отправлен по любому протоколу.
See Also:
  • getSecure()

getSecure

public boolean getSecure()
Возвращает true, если отправка этого cookie должна быть ограничена защищённым протоколом, или false, если он может быть отправлен по любому протоколу.
Returns:
false если cookie может быть отправлен по любому протоколу; в противном случае, true
See Also:
  • setSecure(boolean)

getName

public String getName()
Возвращает имя cookie. Имя не может быть изменено после создания.
Returns:
строку String, содержащую имя cookie

setValue

public void setValue(String newValue)
Присваивает новое значение cookie после его создания. Если вы используете двоичное значение, возможно, вам понадобится использовать кодирование BASE64.

Для cookie версии 0 значения не должны содержать пробелов, скобок, знаков равенства, запятых, двойных кавычек, слешей, вопросительных знаков, символов @, двоеточий и точек с запятой. Пустые значения могут вести себя по-разному в разных браузерах.

Parameters:
newValue - строку String, содержащую новое значение
See Also:
  • getValue()

getValue

public String getValue()
Возвращает значение cookie.
Returns:
строку String, содержащую текущее значение cookie
See Also:
  • setValue(java.lang.String)

getVersion

public int getVersion()
Возвращает версию протокола, с которым соответствует этот cookie. Версия 1 соответствует RFC 2965/2109, а версия 0 соответствует оригинальной спецификации cookie, разработанной Netscape. Cookie, предоставленные браузером, используют и идентифицируют версию cookie браузера.
Returns:
0, если cookie соответствует оригинальной спецификации Netscape; 1, если cookie соответствует RFC 2965/2109
See Also:
  • setVersion(int)

setVersion

public void setVersion(int v)
Устанавливает версию протокола cookie, которому соответствует этот cookie. Версия 0 соответствует оригинальной спецификации cookie Netscape. Версия 1 соответствует RFC 2965/2109.
Parameters:
v - 0, если cookie должен соответствовать оригинальной спецификации Netscape; 1, если cookie должен соответствовать RFC 2965/2109
Throws:
IllegalArgumentException - если v не равно ни 0, ни 1
See Also:
  • getVersion()

isHttpOnly

public boolean isHttpOnly()
Возвращает true, если этот cookie содержит атрибут HttpOnly. Это означает, что к cookie не должен иметь доступ скриптовый движок, например, javascript.
Returns:
true если этот cookie должен рассматриваться как HTTPOnly
See Also:
  • setHttpOnly(boolean)

setHttpOnly

public void setHttpOnly(boolean httpOnly)
Указывает, следует ли рассматривать cookie как HTTP Only. Если установлено true, это означает, что к cookie не должен иметь доступ скриптовый движок, например, javascript.
Parameters:
httpOnly - если true сделать cookie HTTP-только, т.е. видимым только в рамках HTTP-запроса.
See Also:
  • isHttpOnly()

domainMatches

public static boolean domainMatches(String domain, String host)
Утилитарный метод для проверки того, находится ли имя хоста в домене.

Эта концепция описана в спецификации cookie. Для понимания концепции необходимо определить некоторые термины:

эффективное имя хоста = имя хоста, если имя хоста содержит точку
или = имя_хоста.local, если нет

Имя хоста А совпадает с доменным именем хоста Б, если:

  • их имена хоста совпадают при сравнении строк; или
  • А — строка HDN и имеет вид NB, где N — непустая строка имени, Б имеет вид .B', а B' — строка HDN. (Например, x.y.com совпадает с .Y.com, но не с Y.com.)

Хост не находится в домене (RFC 2965 sec. 3.3.2), если:

  • Значение атрибута Domain не содержит вложенных точек и не равно .local.
  • Эффективное имя хоста, полученное из имени хоста запроса, не совпадает с атрибутом Domain.
  • Имя хоста запроса — HDN (не IP-адрес) и имеет вид HD, где D — значение атрибута Domain, а H — строка, содержащая одну или несколько точек.

Примеры:

  • Set-Cookie2 с request-host y.x.foo.com и Domain=.foo.com будет отклонен, так как H — y.x и содержит точку.
  • Set-Cookie2 с request-host x.foo.com и Domain=.foo.com будет принят.
  • Set-Cookie2 с Domain=.com или Domain=.com., всегда будет отклонен, так как нет вложенной точки.
  • Set-Cookie2 с request-host example и Domain=.local будет принят, так как эффективное имя хоста для request-host — example.local, и example.local совпадает с .local.
Parameters:
domain - доменное имя для проверки имени хоста
host - проверяемое имя хоста
Returns:
true если они совпадают по домену; false если нет

toString

public String toString()
Создаёт строковое представление cookie-заголовка этого cookie, которое соответствует определённому в соответствующей спецификации cookie формату, но без ведущего токена "Cookie:".
Overrides:
toString в классе Object
Returns:
строковое представление cookie

equals

public boolean equals(Object obj)
Проверяет равенство двух HTTP cookie.

Результатом является true только если два cookie происходят из одного домена (без учёта регистра), имеют одинаковое имя (без учёта регистра) и одинаковый путь (с учётом регистра).

Overrides:
equals в классе Object
Parameters:
obj - ссылка на объект для сравнения.
Returns:
true если два HTTP cookie равны; иначе, false
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает хэш-код этого HTTP cookie. Результатом является сумма хэш-кодов трёх значимых компонентов этого cookie: имени, домена и пути. То есть, хэш-код — это значение выражения:
getName().toLowerCase().hashCode()
+ getDomain().toLowerCase().hashCode()
+ getPath().hashCode()
Overrides:
hashCode в классе Object
Returns:
хэш-код этого HTTP cookie
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

clone

public Object clone()
Создаёт и возвращает копию этого объекта.
Overrides:
clone в классе Object
Returns:
копию этого HTTP cookie
See Also:
  • Cloneable

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/net/HttpCookie.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API