Это выглядит так, если вы читаете *
как «ноль или больше символов», как в регулярных выражениях.
кажется, имеют немного другой смысл, если вы читаете Notational Convention из RFC:
*rule
The character "*" preceding an element indicates repetition. The full form is "<n>*<m>element" indicating at least <n> and at most <m> occurrences of element. Default values are 0 and infinity so that "*(element)" allows any number, including zero; "1*element" requires at least one; and "1*2element" allows one or two.
Таким образом, хотя это не регулярное выражение, смысл, по существу, одна и та же. Астерикс, не имеющий конечного числа в этом случае, означает, что могут быть «0 или более» «тексты». Нечетный способ выразить это, но, похоже, вы правы.
Строго говоря, пробел -, хотя я думаю, что разделитель может быть опущен, если нечего отделять. Это может убить клиентов, которые имеют строгую реализацию, однако, если они просто разделили эту строку на пробелы и попытались прочитать элемент, в котором должно быть описание. Но опять же, эти клиенты должны были использовать некоторые защитные программы, чтобы поймать эту ситуацию. ;)
RFC делает говорит, что это может быть любой текст, если он является понятным для человека описанием проблемы. Этот текст важен, поскольку клиент может не понимать точного значения кода состояния, поэтому ему может потребоваться отобразить текст пользователю. Поэтому, хотя вы можете опустить это, я лично не буду.
Почему опустить? Если вы ищете экономию байтов, превышающую размер записи, просто используйте [SPDY] (http://en.wikipedia.org/wiki/SPDY). – josh3736
@josh Создание библиотеки, позволяющей пользователю установить код ответа.Если пользователь устанавливает код экзотического ответа, мне придется выбирать между тем, чтобы оставить пустую строку, установив некоторого короля 'UNKNOWN' Reason-Phrase или заставив пользователя установить фразу разума. – Benjamin
FWIW, базовая HTTP-библиотека Node (и, следовательно, большинство вещей, построенных на нем, например Express) [по умолчанию отправляет строку 'unknown' как фразу разума] (https://github.com/joyent/node/blob/v0. 10.12/lib/http.js # L1119), когда автор устанавливает код экзотического статуса и не содержит строку причины. – josh3736