2016-09-07 1 views
0

Говорят, что Transport будет обрабатывать Content-Encoding автоматически (например, автоматическое декомпрессию при чтении от resp.Body).Должен ли HTTP-прокси копировать заголовок Content-Encoding обратно клиенту?

Также сказано, что Content-Encoding - это сквозной HTTP-заголовок, а не перехват.

Поэтому, если прокси-сервер копируется Content-Encoding обратно в заголовок ответа клиента, и этот прокси также io.Copy вышестоящий орган ответа (который может автоматически декомпрессия, так как io.Copy будет читать resp.Body), не будет ли это непоследовательно клиенту? (Content-Encoding скопирован с восходящего отклика, но корпус был распакован)

ответ

0

В целом заголовок ответа Content-Encoding не должен изменяться прокси-сервером.

Различные кодировки одного и того же URI считаются различными представлениями и имеют разные ETags. Таким образом, изменение Content-Encoding не будет хорошо работать с кешированием.

Но если это ваш собственный прокси-сервер и клиент в вашей собственной экосистеме, вы можете это сделать, поскольку вы знаете, что происходит, поэтому, если ваш прокси-сервер распаковывает данные обратно клиенту, вам нужно будет лишить Content-Encoding заголовок.

+0

Так что в 'go', когда я использую' io.Copy (rw, resp.Body) ', следует ли мне копировать заголовок' Content-Encoding' или нет? – dastan