У меня такое ощущение, что разработчики некоторых браузеров почти не читали RFC 2068. Потому что я тут тестировал парсер HTTP запроса, и мне приходили от некоторых людей ткие запросы:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.23 [en]
Host: longobard.local
Accept: text/html, application/xml;q=0.9, application/xhtml+xml;q=0.9, image/png, image/jpeg, image/gif, image/x-xbitmap, /;q=0.1
Accept-Language: en
Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
XXXXXXXXXXXXXXX: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Connection: Keep-Alive
Это запрос, пришедший ко мне, когда человек нажал http://longobard.local/xyz.html
Что это спрашивается за параметр XXXXXXXXXXXXXXXXXXXX: ???!!!???!!!
(Кстати, это было послано с Оперы 7.23 виндовой).
На это веселье не кончается:
в некоторых запросах я увидел поле Keep-Alive с какими-то бредовыми параметрами. суть в том, что в RFC 2068 ничего не сказано про этот параметр запроса. Там сказано про такие запросы:
general-header = Cache-Control ; Section 14.9
| Connection ; Section 14.10
| Date ; Section 14.19
| Pragma ; Section 14.32
| Transfer-Encoding ; Section 14.40
| Upgrade ; Section 14.41
| Via ; Section 14.44
request-header = Accept ; Section 14.1
| Accept-Charset ; Section 14.2
| Accept-Encoding ; Section 14.3
| Accept-Language ; Section 14.4
| Authorization ; Section 14.8
| From ; Section 14.22
| Host ; Section 14.23
| If-Modified-Since ; Section 14.24
| If-Match ; Section 14.25
| If-None-Match ; Section 14.26
| If-Range ; Section 14.27
| If-Unmodified-Since ; Section 14.28
| Max-Forwards ; Section 14.31
| Proxy-Authorization ; Section 14.34
| Range ; Section 14.36
| Referer ; Section 14.37
| User-Agent ; Section 14.42
И где здесь вашу маму параметр Keep-Alive???!! НЕТУ! Один из аргуметов параметра Connection может быть Keep-Alive, но параметра такого нету!
Коче того, выяснилось что Опера, которую я так любил, зачем-то посылает ТРИ запроса за раз. То есть я набираю урл http://localhost а она мне шлет ТРИ абсолютно одинаковых запроса. Для надежности чтоли ? :)
Короче так как по стандартам сервер обязан игнорировать неизвестные ему поля HTTP запроса, то такие через Ж*ПУ написаные бродилки работают. Но что же это такое началось то? Для кого запросы пишутся? А я еще хвалил оперую. Все эти три косяка наблюдаются только в запросах, посланных с Оперы. Все, больше я ее не юзаю. Простите за такую эмоциональность, просто взбесило.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Зря хвалил…. :D