QNetworkCookie Class
QNetworkCookie 클래스는 하나의 네트워크 쿠키를 보유합니다. 더 보기...
헤더: | #include <QNetworkCookie> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- 상속된 멤버를 포함한 모든 멤버 목록
- Q네트워크쿠키는 암시적으로 공유되는 클래스의 일부입니다.
공용 유형
enum | RawForm { NameAndValueOnly, Full } |
(since 6.1) enum class | SameSite { Default, None, Lax, Strict } |
공용 함수
QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray()) | |
QNetworkCookie(const QNetworkCookie &other) | |
~QNetworkCookie() | |
QString | domain() const |
QDateTime | expirationDate() const |
bool | hasSameIdentifier(const QNetworkCookie &other) const |
bool | isHttpOnly() const |
bool | isSecure() const |
bool | isSessionCookie() const |
QByteArray | name() const |
void | normalize(const QUrl &url) |
QString | path() const |
(since 6.1) QNetworkCookie::SameSite | sameSitePolicy() const |
void | setDomain(const QString &domain) |
void | setExpirationDate(const QDateTime &date) |
void | setHttpOnly(bool enable) |
void | setName(const QByteArray &cookieName) |
void | setPath(const QString &path) |
(since 6.1) void | setSameSitePolicy(QNetworkCookie::SameSite sameSite) |
void | setSecure(bool enable) |
void | setValue(const QByteArray &value) |
void | swap(QNetworkCookie &other) |
QByteArray | toRawForm(QNetworkCookie::RawForm form = Full) const |
QByteArray | value() const |
bool | operator!=(const QNetworkCookie &other) const |
QNetworkCookie & | operator=(const QNetworkCookie &other) |
bool | operator==(const QNetworkCookie &other) const |
정적 공용 멤버
QList<QNetworkCookie> | parseCookies(QByteArrayView cookieString) |
상세 설명
쿠키는 HTTP와 같은 상태 비저장 프로토콜이 요청 전반에 걸쳐 일부 영구적인 정보를 유지하기 위해 사용하는 작은 정보 비트입니다.
쿠키는 원격 서버가 요청에 응답할 때 설정되며, 추가 요청이 전송될 때 동일한 쿠키가 다시 전송될 것으로 예상합니다.
Q네트워크쿠키는 네트워크에서 받은 쿠키 하나를 보유합니다. 쿠키에는 이름과 값이 있지만 애플리케이션에는 불투명합니다(즉, 쿠키에 저장된 정보는 애플리케이션에 의미가 없음). 쿠키에는 쿠키가 서버로 다시 전송되어야 하는 시기를 나타내는 관련 경로 이름과 도메인이 있습니다.
쿠키에는 유효기간을 나타내는 만료 날짜도 있을 수 있습니다. 만료 날짜가 없는 경우 쿠키는 "세션 쿠키"로 간주되며 애플리케이션이 종료될 때(또는 세션 개념이 종료될 때) 삭제되어야 합니다.
Q네트워크쿠키는 QNetworkCookie::parseCookies() 함수를 사용하여 HTTP 헤더 형식에서 쿠키를 파싱하는 방법을 제공합니다. 그러나 QNetworkReply 로 수신되면 쿠키는 이미 파싱된 상태입니다.
이 클래스는 RFC 2109 사양과 다소 유사한 넷스케이프의 초기 쿠키 사양에 설명된 대로 쿠키를 구현하며 "HttpOnly" 확장자를 추가합니다. 최신 RFC 2965 사양(Set-Cookie2 헤더를 사용하는)은 지원되지 않습니다.
QNetworkCookieJar, QNetworkRequest, QNetworkReply 를참조하세요 .
멤버 유형 문서
enum QNetworkCookie::RawForm
이 열거형은 toRawForm() 함수와 함께 사용되어 반환할 쿠키의 형태를 선언합니다.
Constant | 값 | Description |
---|---|---|
QNetworkCookie::NameAndValueOnly | 0 | 는 toRawForm()가 클라이언트 요청의 "쿠키:" 헤더에 있는 서버로 다시 전송하기에 적합한 쿠키의 "NAME=VALUE" 부분만 반환하도록 합니다. 여러 개의 쿠키는 "쿠키:" 헤더 필드에서 세미콜론으로 구분합니다. |
QNetworkCookie::Full | 1 | 는 toRawForm()가 서버의 "Set-Cookie:" 헤더에 있는 클라이언트에 전송하기에 적합한 전체 쿠키 내용을 반환하도록 합니다. |
쿠키의 전체 형식만 원래 콘텐츠로 다시 파싱할 수 있다는 점에 유의하세요.
toRawForm() 및 parseCookies()도 참조하세요 .
[since 6.1]
enum class QNetworkCookie::SameSite
상수 | 값 | 설명 |
---|---|---|
QNetworkCookie::SameSite::Default | 0 | SameSite가 설정되지 않았습니다. 브라우저에서 없음 또는 Lax로 해석될 수 있습니다. |
QNetworkCookie::SameSite::None | 1 | 쿠키는 모든 컨텍스트에서 전송될 수 있습니다. 이전에는 기본값이었지만 최근 브라우저는 Lax를 기본값으로 설정했으며, 이제 쿠키가 안전해야 하고 SameSite=None을 설정해야 합니다. |
QNetworkCookie::SameSite::Lax | 2 | 쿠키는 퍼스트 파티 요청과 타사 웹사이트에서 시작된 GET 요청에 대해 전송됩니다. 이는 최신 브라우저의 기본값입니다(2020년 중반 이후). |
QNetworkCookie::SameSite::Strict | 3 | 쿠키는 퍼스트 파티 컨텍스트에서만 전송됩니다. |
이 열거형은 Qt 6.1에 도입되었습니다.
setSameSitePolicy() 및 sameSitePolicy()도 참조하세요 .
멤버 함수 문서
[explicit]
QNetworkCookie::QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray())
쿠키 이름을 name 으로, 값을 value 으로 초기화하여 새 QNetworkCookie 객체를 생성합니다.
쿠키는 이름이 있는 경우에만 유효합니다. 그러나 이 값은 애플리케이션에 불투명하며 비어 있으면 원격 서버에 중요한 의미를 가질 수 있습니다.
QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)
other 의 내용을 복사하여 새 QNetworkCookie 객체를 생성합니다.
[noexcept]
QNetworkCookie::~QNetworkCookie()
이 QNetworkCookie 객체를 삭제합니다.
QString QNetworkCookie::domain() const
이 쿠키가 연결된 도메인을 반환합니다. 이는 쿠키 문자열의 "도메인" 필드에 해당합니다.
여기서 도메인은 유효한 호스트 이름이 아닌 점으로 시작할 수 있습니다. 그러나 이 쿠키는 해당 도메인 이름으로 끝나는 모든 호스트 이름과 일치합니다.
setDomain()도 참조하세요 .
QDateTime QNetworkCookie::expirationDate() const
이 쿠키의 만료일을 반환합니다. 이 쿠키가 세션 쿠키인 경우 반환된 QDateTime 은 유효하지 않습니다. 날짜가 과거인 경우 이 쿠키는 이미 만료되었으므로 원격 서버로 다시 전송해서는 안 됩니다.
만료 날짜는 쿠키 문자열의 "expires" 항목의 매개변수에 해당합니다.
isSessionCookie() 및 setExpirationDate()도 참조하세요 .
bool QNetworkCookie::hasSameIdentifier(const QNetworkCookie &other) const
이 쿠키에 other 과 동일한 식별자 튜플이 있는 경우 true
을 반환합니다. 식별자 튜플은 이름, 도메인 및 경로로 구성됩니다.
operator==()도 참조하세요 .
bool QNetworkCookie::isHttpOnly() const
이 쿠키에 "HttpOnly" 플래그가 활성화된 경우 true
을 반환합니다.
"HttpOnly" 쿠키는 네트워크 요청 및 응답, 즉 HTTP 프로토콜에 의해서만 설정되고 검색됩니다. 브라우저에서 실행되는 스크립트에서는 액세스할 수 없습니다.
isSecure()도 참조하세요 .
bool QNetworkCookie::isSecure() const
쿠키 문자열에 '보안' 옵션이 지정되어 있으면 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
보안 쿠키는 개인 정보를 포함할 수 있으므로 암호화되지 않은 연결을 통해 다시 전송해서는 안 됩니다.
setSecure()도 참조하세요 .
bool QNetworkCookie::isSessionCookie() const
이 쿠키가 세션 쿠키인 경우 true
을 반환합니다. 세션 쿠키는 만료 날짜가 없는 쿠키로, 애플리케이션의 세션 개념이 종료되면(일반적으로 애플리케이션 종료 시) 삭제되어야 합니다.
expirationDate() 및 setExpirationDate()도 참조하세요 .
QByteArray QNetworkCookie::name() const
이 쿠키의 이름을 반환합니다. 쿠키의 유일한 필수 필드는 이름이며, 이름이 없으면 쿠키가 유효한 것으로 간주되지 않습니다.
void QNetworkCookie::normalize(const QUrl &url)
이 함수는 쿠키의 경로와 도메인이 이전에 비어 있던 경우 이를 정상화합니다. url 매개변수는 올바른 도메인과 경로를 결정하는 데 사용됩니다.
[static]
QList<QNetworkCookie> QNetworkCookie::parseCookies(QByteArrayView cookieString)
서버 응답에서 "Set-Cookie:" 헤더로 받은 쿠키 문자열 cookieString 을 구문 분석합니다. 구문 분석 오류가 있는 경우 이 함수는 빈 목록을 반환합니다.
HTTP 헤더는 동시에 두 개 이상의 쿠키를 설정할 수 있으므로 이 함수는 파싱된 각 쿠키에 대해 하나씩 QList<QNetworkCookie>를 반환합니다.
참고: 6.7 이전 Qt 버전에서는 이 함수는 QByteArray 만 받았습니다.
toRawForm()도 참조하세요 .
QString QNetworkCookie::path() const
이 쿠키와 연결된 경로를 반환합니다. 이는 쿠키 문자열의 "경로" 필드에 해당합니다.
setPath()도 참조하세요 .
[since 6.1]
QNetworkCookie::SameSite QNetworkCookie::sameSitePolicy() const
쿠키 문자열에 지정된 경우 "SameSite" 옵션을 반환하고, 없는 경우 SameSite::Default
을 반환합니다.
이 함수는 Qt 6.1에 도입되었습니다.
setSameSitePolicy()도 참조하세요 .
void QNetworkCookie::setDomain(const QString &domain)
이 쿠키와 연결된 도메인을 domain 로 설정합니다.
domain()도 참조하세요 .
void QNetworkCookie::setExpirationDate(const QDateTime &date)
이 쿠키의 만료일을 date 로 설정합니다. 이 쿠키에 유효하지 않은 만료일을 설정하면 세션 쿠키가 됩니다.
isSessionCookie() 및 expirationDate()도 참조하세요 .
void QNetworkCookie::setHttpOnly(bool enable)
이 쿠키의 "HttpOnly" 플래그를 enable 로 설정합니다.
isHttpOnly()도 참조하세요 .
void QNetworkCookie::setName(const QByteArray &cookieName)
이 쿠키의 이름을 cookieName 로 설정합니다. 쿠키 이름을 빈 QByteArray 으로 설정하면 이 쿠키는 유효하지 않습니다.
void QNetworkCookie::setPath(const QString &path)
이 쿠키와 관련된 경로를 path 로 설정합니다.
path()도 참조하세요 .
[since 6.1]
void QNetworkCookie::setSameSitePolicy(QNetworkCookie::SameSite sameSite)
이 쿠키의 "SameSite" 옵션을 sameSite 으로 설정합니다.
이 함수는 Qt 6.1에 도입되었습니다.
sameSitePolicy()도 참조하십시오 .
void QNetworkCookie::setSecure(bool enable)
이 쿠키의 보안 플래그를 enable 로 설정합니다.
보안 쿠키는 개인 정보를 포함할 수 있으며 암호화되지 않은 연결을 통해 재전송되어서는 안 됩니다.
isSecure()도 참조하세요 .
void QNetworkCookie::setValue(const QByteArray &value)
이 쿠키의 값을 value 로 설정합니다.
[noexcept]
void QNetworkCookie::swap(QNetworkCookie &other)
이 쿠키를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
QByteArray QNetworkCookie::toRawForm(QNetworkCookie::RawForm form = Full) const
이 QNetworkCookie 의 원시 형태를 반환합니다. 이 함수가 반환하는 QByteArray 은 서버 응답(Set-Cookie 헤더) 또는 클라이언트 요청(쿠키 헤더)의 HTTP 헤더에 적합합니다. form 을 사용하여 두 가지 형식 중 하나를 선택할 수 있습니다.
parseCookies()도 참조하세요 .
QByteArray QNetworkCookie::value() const
쿠키 문자열에 지정된 대로 이 쿠키 값을 반환합니다. 쿠키 값이 비어 있어도 쿠키는 여전히 유효합니다.
쿠키 이름-값 쌍은 애플리케이션에서 불투명 쿠키로 간주됩니다. 즉, 해당 값은 아무 의미가 없습니다.
bool QNetworkCookie::operator!=(const QNetworkCookie &other) const
이 쿠키가 other 과 같지 않으면 true
을 반환합니다.
operator==()도 참조하세요 .
QNetworkCookie &QNetworkCookie::operator=(const QNetworkCookie &other)
QNetworkCookie 객체 other 의 내용을 이 객체로 복사합니다.
bool QNetworkCookie::operator==(const QNetworkCookie &other) const
이 쿠키가 other 과 같으면 true
을 반환합니다. 이 함수는 쿠키의 모든 필드가 동일한 경우에만 true
을 반환합니다.
그러나 일부 상황에서는 같은 이름의 쿠키 두 개가 동일한 것으로 간주될 수 있습니다.
operator!=() 및 hasSameIdentifier()도 참조하세요 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.