Spec-Zone.ru › OpenJDK 21

Класс 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
Внешние спецификации
  • RFC 2109: Механизм управления состоянием HTTP
  • RFC 2965: Механизм управления состоянием HTTP

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

Конструктор Описание
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, но без ведущего маркера "Cookie:".

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

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

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

HttpCookie

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

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

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

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

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

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

parse

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

hasExpired

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

setComment

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

getComment

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

setCommentURL

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

getCommentURL

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

setDiscard

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

getDiscard

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

setPortlist

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

getPortlist

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

setDomain

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

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

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

getDomain

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

setMaxAge

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

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

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

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

getMaxAge

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

setPath

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

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

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

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

getPath

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

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-only, т.е. видимым только как часть HTTP-запроса.
See Also:
  • isHttpOnly()

domainMatches

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

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

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

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

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

Хост не находится в домене (RFC 2965, раздел 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: имени, домена и пути. То есть, хэш-код — значение выражения:
hashCode().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, 2023, 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/21/docs/api/java.base/java/net/HttpCookie.html

Spec-Zone.ru

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