QNetworkCookie Class
QNetworkCookie 클래스는 네트워크 쿠키 하나를 저장합니다. 더 보기...
| 헤더: | #include <QNetworkCookie> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- 상속된 멤버를 포함한 모든 멤버 목록
- QNetworkCookie는 ‘암시적 공유 클래스’에 속합니다.
공개 유형
| 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와 같은 상태 비저장 프로토콜이 요청 간에 일부 영구적인 정보를 유지하기 위해 사용하는 작은 정보 조각입니다.
쿠키는 원격 서버가 요청에 응답할 때 설정되며, 이후 요청이 전송될 때 동일한 쿠키가 다시 전송될 것으로 기대합니다.
QNetworkCookie는 네트워크에서 수신한 이러한 쿠키 하나를 보관합니다. 쿠키에는 이름과 값이 있지만, 이는 애플리케이션에 대해 불투명합니다(즉, 쿠키에 저장된 정보는 애플리케이션에 아무런 의미가 없습니다). 쿠키에는 관련 경로 이름과 도메인이 있으며, 이는 쿠키를 서버로 다시 전송해야 할 시기를 나타냅니다.
쿠키에는 유효 기간을 나타내는 만료일이 지정될 수도 있습니다. 만료일이 지정되지 않은 경우, 해당 쿠키는 “세션 쿠키”로 간주되며 애플리케이션이 종료될 때(또는 해당 애플리케이션의 세션 개념이 종료될 때) 삭제되어야 합니다.
QNetworkCookie는 QNetworkCookie::parseCookies() 함수를 사용하여 HTTP 헤더 형식의 쿠키를 파싱하는 방법을 제공합니다. 그러나 QNetworkReply 에서 수신된 쿠키는 이미 파싱된 상태입니다.
이 클래스는 RFC 2109 사양과 다소 유사한 Netscape의 초기 쿠키 사양과 “HttpOnly” 확장에 따라 쿠키를 구현합니다. Set-Cookie2 헤더를 사용하는 최신 RFC 2965 사양은 지원되지 않습니다.
QNetworkCookieJar, QNetworkRequest 및 QNetworkReply도 참조하십시오 .
멤버 유형 문서
enum QNetworkCookie::RawForm
이 열거형은 toRawForm() 함수와 함께 사용되어 어떤 형태의 쿠키를 반환할지 선언하는 데 사용됩니다.
| 상수 | 값 | 설명 |
|---|---|---|
QNetworkCookie::NameAndValueOnly | 0 | toRawForm()가 클라이언트 요청의 "Cookie:" 헤더를 통해 서버로 다시 전송하기에 적합한 쿠키의 "NAME=VALUE" 부분만 반환하도록 합니다. 여러 쿠키는 "Cookie:" 헤더 필드에서 세미콜론으로 구분됩니다. |
QNetworkCookie::Full | 1 | toRawForm() 함수가 서버의 "Set-Cookie:" 헤더를 통해 클라이언트에 전송하기에 적합한 전체 쿠키 내용을 반환하도록 합니다. |
쿠키의 전체 형식(Full)만이 원래 내용으로 다시 파싱될 수 있다는 점에 유의하십시오.
toRawForm() 및 parseCookies()도 참조하십시오 .
[since 6.1] enum class QNetworkCookie::SameSite
| 상수 | 값 | 설명 |
|---|---|---|
QNetworkCookie::SameSite::Default | 0 | SameSite가 설정되어 있지 않습니다. 브라우저에서 None 또는 Lax로 해석될 수 있습니다. |
QNetworkCookie::SameSite::None | 1 | 모든 컨텍스트에서 쿠키를 전송할 수 있습니다. 이는 과거의 기본 설정이었으나, 최근 브라우저들은 Lax를 기본값으로 변경했으며, 이제 쿠키는 보안이 적용되어야 할 뿐만 아니라 SameSite=None으로 설정되어야 합니다. |
QNetworkCookie::SameSite::Lax | 2 | 쿠키는 자사 요청 및 제3자 웹사이트에서 시작된 GET 요청 시 전송됩니다. 이는 최신 브라우저의 기본 설정입니다(2020년 중반 이후). |
QNetworkCookie::SameSite::Strict | 3 | 쿠키는 제1자 컨텍스트에서만 전송됩니다. |
이 열거형은 Qt 6.1에서 도입되었습니다.
setSameSitePolicy() 및 sameSitePolicy()도 참조하십시오 .
멤버 함수 문서
[explicit] QNetworkCookie::QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray())
새로운 QNetworkCookie 객체를 생성하고, 쿠키 이름을 name 으로, 값을 value 으로 초기화합니다.
쿠키는 이름이 있어야만 유효합니다. 그러나 값은 애플리케이션에 대해서는 불투명하며, 값이 비어 있는 것이 원격 서버에 있어서는 특별한 의미를 가질 수 있습니다.
QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)
other 의 내용을 복사하여 새로운 QNetworkCookie 객체를 생성합니다.
[noexcept] QNetworkCookie::~QNetworkCookie()
이 QNetworkCookie 객체를 삭제합니다.
QString QNetworkCookie::domain() const
이 쿠키가 연결된 도메인을 반환합니다. 이는 쿠키 문자열의 “domain” 필드에 해당합니다.
여기서 도메인은 점(.)으로 시작할 수 있으며, 이는 유효한 호스트명이 아닙니다. 그러나 이는 해당 쿠키가 해당 도메인 이름으로 끝나는 모든 호스트명과 일치함을 의미합니다.
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
쿠키 문자열에 "secure" 옵션이 지정된 경우 ` 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>를 반환합니다.
참고: Qt 6.7 이전버전에서는 이 함수가 QByteArray 형식만 받아들였습니다.
toRawForm()함수도 참조하십시오 .
QString QNetworkCookie::path() const
이 쿠키와 관련된 경로를 반환합니다. 이는 쿠키 문자열의 “path” 필드에 해당합니다.
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 헤더)이나 클라이언트 요청(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()도 참조하십시오 .
© 2026 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.