summaryrefslogtreecommitdiffstats
path: root/src/network/access/qhttpnetworkrequest_p.h
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2018-01-17 15:22:56 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2018-01-24 16:54:49 +0000
commitd2b2511f88d3cf0b3db65c1bb5836e08e50636ab (patch)
tree471a6be0696f5e6e8d1d8005a0092d9d37358bcc /src/network/access/qhttpnetworkrequest_p.h
parentb40e0e72333beab192196e8b9cb599e9274d4d56 (diff)
QNAM should prepend Host header to the header list instead of appending
When original QNetworkRequest is missing "Host" header (which is the most common case), it is provided automatically from request URL. However, resulting header is appended to the list, i.e. after all headers specified by user, which may include a big bunch of cookies. To the contrary, RFC 7230 suggests: "However, it is good practice to send header fields that contain control data first, such as Host on requests and Date on responses, so that implementations can decide when not to handle a message as early as possible". Many other user agents are following this suggestion. Task-number: QTBUG-51557 Change-Id: I1448ed3ae124f5ce86a8ca8ff35f5d05476a005d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/network/access/qhttpnetworkrequest_p.h')
-rw-r--r--src/network/access/qhttpnetworkrequest_p.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/network/access/qhttpnetworkrequest_p.h b/src/network/access/qhttpnetworkrequest_p.h
index ecf8856ded..f9f991977f 100644
--- a/src/network/access/qhttpnetworkrequest_p.h
+++ b/src/network/access/qhttpnetworkrequest_p.h
@@ -102,6 +102,7 @@ public:
QList<QPair<QByteArray, QByteArray> > header() const Q_DECL_OVERRIDE;
QByteArray headerField(const QByteArray &name, const QByteArray &defaultValue = QByteArray()) const Q_DECL_OVERRIDE;
void setHeaderField(const QByteArray &name, const QByteArray &data) Q_DECL_OVERRIDE;
+ void prependHeaderField(const QByteArray &name, const QByteArray &data);
Operation operation() const;
void setOperation(Operation operation);