K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>大分時間が経ってしまいましたが、回答は理解できました。 > >おひさしぶりです。反応が遅くなりましてすみません。 > >>一方で、Server側をApacheに置き換えたとき、Clientからの送信終了を表す”0”は >>不要になっています(P.27)。Apacheは何をもってClientがリクエストを送り終えたことを >>判断しているのでしょうか? > >TcpServer.javaのような手抜きプログラムとは違い、ApacheはまともなWebサーバなので、 >HTTPリクエストを解釈できます。HTTPリクエストは、p.24のリスト1-7にあるとおり、 >GETの場合は(普通は)ボディはつかないので空行で終わります。よって、 >空行でリクエストの終わりを判定することができます。この本で作っている >簡易WebサーバModoki01.java(リスト1-16)では、実際そのようにしてリクエストの >終わりを判定しています(59行目)。 > >POSTの場合はボディが付くので、Content-Lengthヘッダのサイズを使います。 >この本ではリスト3-17の66行目でContent-Lengthを取得し、69行目のreadToSize()の >呼び出しでそのサイズだけ読み込んでいます。 > >――というのは実はHTTP1.0相当の、簡易版の実装で、HTTP1.1では >サーバはGETメソッドでもボディを受け取ることが可能でなければならず(そして >無視しなければならず)、POSTメソッドでもContent-Lengthは必須ではありません。 >動的にデータを作りながら連続して送るとき、ヘッダの時点ではサイズを確定できない、 >という事情があるわけですが、それを受け取るのは本書の(かつ私の能力の)範囲を >越えます。 >興味があれば以下を参照ください(RFC2616なので微妙に古いですが問題ないでしょう)。 > >https://triple-underscore.github.io/rfc-others/RFC2616-ja.html#section-4.4 >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!