正規表現のように、*
を「0以上の文字」として読んだ場合、そのように見えます。
あなたがRFCのNotational Conventionを読めば、わずかに異なる意味を持っていると思わ:
*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以上の」「テキスト」が存在する可能性があることを意味します。それを置くために奇妙な方法が、あなたが正しいようです。
厳密に言えば、スペースははですが、分離する必要がない場合は区切り記号を省略することもできます。ただし、厳密に実装されているクライアントを殺す可能性があります。ただし、スペース上でこの文字列を分割して、記述が必要な要素を読み取ろうとすると、しかし、再び、そのようなクライアントは、その状況を捉えるために防御的なプログラミングを使用していたはずです。 ;)
は、人間が判読可能な問題の説明であれば任意のテキストでよいと言います。クライアントがステータスコードの正確な意味を理解していない可能性があるため、このテキストは重要です。したがって、テキストをユーザーに表示する必要があります。あなたがそれを省略することはできますが、私は個人的にはそうしません。
なぜ省略?余分なバイトの節約を探しているなら、[SPDY](http://en.wikipedia.org/wiki/SPDY)を使うだけです。 – josh3736
@joshユーザーが応答コードを設定できるライブラリを構築します。ユーザーがエキゾチックなレスポンスコードを設定した場合、文字列を空のままにするか、「UNKNOWN」理由フレーズの王を設定するか、ユーザーに理由フレーズを設定させるかのいずれかを選択する必要があります。 – Benjamin
FWIW、Nodeの基本HTTPライブラリ(したがって、Expressのようなほとんどのもの)は、[Reason Phraseとして文字列 'unknown]を送信することがデフォルトです(https://github.com/joyent/node/blob/v0。 10.12/lib/http.js#L1119)、著者がエキゾチックなステータスコードを設定し、理由文字列を提供しない場合。 – josh3736