<div dir="ltr"><div class="gmail_quote"><div dir="ltr">пт, 30 нояб. 2018 г. в 13:36, Илья Шипицин <<a href="mailto:chipitsine@gmail.com">chipitsine@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>протоколы действительно разные.</div><div>но выглядит так, что предложение Гены поможет написать документацию, более устойчивую к тупому копипасту (есть такой патерн, что глядя на пример документации на авторитетном сайте, его копируют)<br></div></div><br><div class="gmail_quote"><div dir="ltr">пт, 30 нояб. 2018 г. в 14:30, Gena Makhomed <<a href="mailto:gmm@csdoc.com" target="_blank">gmm@csdoc.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 29.11.2018 21:02, Maxim Dounin wrote:<br>
<br>
> CGI и HTTP - это два разных протокола.  В последних вариациях на<br>
> тему спецификации CGI записано, что на HEAD-запросы тело<br>
> возвращать не надо (а если вдруг вернули - то сервер его должен<br>
> поскипать), <a href="https://tools.ietf.org/html/rfc3875#section-4.3.3" rel="noreferrer" target="_blank">https://tools.ietf.org/html/rfc3875#section-4.3.3</a>:<br>
> <br>
>     The HEAD method requests the script to do sufficient processing to<br>
>     return the response header fields, without providing a response<br>
>     message-body.  The script MUST NOT provide a response message-body<br>
>     for a HEAD request.  If it does, then the server MUST discard the<br>
>     message-body when reading the response from the script.<br>
> <br>
> Однако на момент собственно появления и активного распространения<br>
> CGI никаких подобных требований не существовало, см.<br>
> <a href="https://www.w3.org/CGI/" rel="noreferrer" target="_blank">https://www.w3.org/CGI/</a> и в частности<br>
> <a href="https://tools.ietf.org/html/draft-robinson-www-interface-00" rel="noreferrer" target="_blank">https://tools.ietf.org/html/draft-robinson-www-interface-00</a>.<br>
<br>
Там написано:<br>
<br>
REQUEST_METHOD<br>
<br>
       This variable is specific to requests made with HTTP.<br>
<br>
       The method with which the request was made, as described in<br>
       section 5.1.1 of the HTTP/1.0 specification [3].<br>
<br>
          http-method      = "GET" | "HEAD" | "POST" | extension-method<br>
<br>
"described in HTTP/1.0 specification" - написано где смотреть семантику.<br>
А в HTTP/1.0 specification написано, что "server must not return any<br>
Entity-Body in the response".<br>
<br>
CGI и HTTP - это два разных протокола, но первый ссылается на второй.<br>
При этом CGI протокол не запрещает бекенду отвечать на HEAD-запросы<br>
так, как этого требует от веб-сервера спецификация HTTP протокола.<br>
<br>
> И на<br>
> практике я не встречал скрипты, которые бы отдельно обрабатывали<br>
> HEAD-запросы.<br>
<br>
Но они есть.<br>
И их поведение ничем не противоречит спецификации FastCGI протокола.<br>
<br>
>>> Речь про какие-то фреймворки, которые обрабатывают<br>
>>> HEAD автоматически, не донося соответствующую информацию до кода?<br>
>>> Или про какой-то стандартный софт, который не возвращает тело для<br>
>>> HEAD-запросов?<br>
>><br>
>> Какая разница, сам софт или фрейморк используемый софтом в каждом<br>
>> конкретном случае обрабатывает HEAD запросы согласно требований RFC?<br>
> <br>
> Никакой.  Но с этой точки зрения так же нет разницы, что именно<br>
> написано в примерах в описании директивы fastcgi_cache_key.<br>
<br>
Вы не против, если я создам на хабре статью, в которой напишу<br>
про эту проблему с ошибочными примерами в документации nginx<br>
к директиве fastcgi_cache_key и ее аналогам?<br>
<br>
-- <br>
Best regards,<br>
  Gena<br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div><div><br></div><div><div>Прошу прощения, что влезаю.</div><div>Есть статья Дмитрия Котерова от октября 2009 года, посвещенная кешированию в nginx <a href="http://dklab.ru/chicken/nablas/56.html">http://dklab.ru/chicken/nablas/56.html</a></div><div>Если механизм кеширование не сильно изменился, то данные там акутальные.<br></div><div><br></div><div>На хабре, конечно, охват аудитории больше будет, если там появится подобная статья.</div></div><br></div>