Стандартный заголовок HTTP-запроса (от учета регистра к пробелам) - PullRequest
0 голосов
/ 02 ноября 2019

Я создаю свой собственный веб-сервер, но у меня есть несколько вопросов о заголовке HTTP-REQUEST (от чувствительности к регистру до пробелов). Пожалуйста, не отмечайте этот вопрос как «уже отвеченный», потому что я проверил переполнение стека и не сделалне нашел мой ответ ...

Рассмотрим этот запрос HTTP:

POST index.html?key1=value1&key2=value2 HTTP/1.1\n\t
Host: www.domain.com\n\t
Content-Type: text/html\n\t\n\t
data....

Вопрос 1 :

О строке 1: если естьбудет ли пробел перед 'POST', это правильный HTTP-запрос? Должен ли я проверить первые символы, являются ли они пробелами, или просто проверить, что первый символ равен 'P' или 'G' или ...?

Вопрос 2 : (уже заданно я хочу быть уверен)

О строке 1 (HTTP-METHOD): Все символы HTTP-METHOD должны быть в верхнем регистре? Например, «Сообщение» или «сообщение» является недействительным? (Я просто проверяю символы в верхнем регистре или мне тоже нужно проверять строчные буквы?)

Вопрос 3:

О строке 1 (между HTTP-METHOD и URI):

Между 'POST' и 'index.html' всегда есть символ 0x20 ('')? Например, если клиент предоставил другие символы пробела (например, табуляцию или даже несколько символов пробела), это будет неправильно?

Вопрос 4:

То жекак вопрос 3, но примерно между строкой запроса и HTTP-VERSION (... key2 = значение HTTP / 1.1)?

Вопрос 5:

Между каждым заголовком-клавиша строки и «:» может быть любым символом пробела, или это всегда так «ключ:»?

Вопрос 6:

После «ключ:» он долженбыть символом '' (0x20) или не может быть! ? Можно ли быть чем-то вроде символа табуляции? (Должен ли я проверить наличие других символов пробела, таких как tab?)

...