Re: replace headers - как?

Maxim Dounin mdounin на mdounin.ru
Ср Авг 23 14:30:46 UTC 2017


Hello!

On Wed, Aug 23, 2017 at 02:31:36AM -0400, 1a2bb2cc wrote:

> Привет!
> Пытаюсь реализовать пункт 4.2 https://tools.ietf.org/html/rfc2817#section-4
> , т.е. добиться вот такого ответа:
> 
> 1. HTTP/1.1 426 Upgrade Required
> 2. Server: nginx
> 3. Date: Wed, 23 Aug 2017 06:05:03 GMT
> 4. Content-Type: application/octet-stream
> 5. Content-Length: 16
> 6. Connection: Upgrade
> 7. Upgrade: TLS/1.0, HTTP/1.1

В любом случае nginx не поддерживает RFC 2817, так что не совсем 
понятно, для чего это всё.  Даже если вы сможете послать 
соответствующий ответ (что потребует модификаций в коде) - никто 
не обработает последующий upgrade соединения до SSL/TLS.

Какова цель?

[...]

> В первой строке отсутствует описание "Upgrade Required" - как сделать чтобы
> описание добавлялось?

Нужно добавлять соответствующий код ответа в 
src/http/ngx_http_header_filter_module.c.  Это, впрочем, не 
обязательно - текст ошибки не важен с точки зрения протокола HTTP.

> В шестой строке присутствует ненужный "Connection: keep-alive" - как сделать
> чтобы заголовок Connection перезаписывался, а не суммировался?

Это опять же потребует модификаций кода, в том же файле.  Но опять 
же не важно, с точки зрения протокола HTTP - в заголовке Connection 
перечисляются заголовки, которые не надо отправлять дальше, и там 
вполне можно (а иногда и нужно) перечислять более одного 
заголовка.

-- 
Maxim Dounin
http://nginx.org/


Подробная информация о списке рассылки nginx-ru