HTTPのリクエストとレスポンス
リクエスト
servletに送られるHTTPプロトコルによるリクエストの内容を読み解くと
以下手打ち
POST /request/URL HTTP/1.1 //リクエストライン
Host: localhost:8080 //メッセージヘッダ↓
Connection: keep-alive //
Content-Length: 8
Cache-Control: max-age=0
Origin: htttp://localhost:8080
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html, application/xhtml+xml, application/xml;q=0.9,
image/webp, */*;q=0.8
Referer: http://localhost:8080/request/URL.html
Accept-Encoding: gzip, deflate, br
Accept-Language: ja, en-US;q=0.8,en;q=0.6 //メッセージヘッダ↑
//改行
user=abc //メッセージボディ
1行目リクエストラインには
リクエストメソッドの種類 リクエストされたURI プロトコルVer があり
2行目からのメッセージヘッダには
ユーザのブラウザ種類の情報や、処理関連(キャッシュの利用有無など)
そして1行改行を挟んで、メッセージボディには
リクエスト時に引き渡されたパラメータ情報が記載されている
(POST通信時のみかも? GETの場合はURLに含まれているし…)
これらのHTTPプロトコルの情報をServlet内で利用できるように
HttpServletRequestインタフェース内で取得用のメソッドが各種用意されている (使いたいときにそれぞれ調べろ)
レスポンス
Servletで生成されたレスポンスとなるHTTPプロトコルは以下(手打ち)
HTTP/1.1 200 //ステータスライン
Content-Type: text/html;charset=UTF-8 //メッセージヘッダ↓
Content-Length: 167 //
Date: Mon, 3 Oct 2020 15:00:05 GMT //メッセージヘッダ↑
//改行
<!DOCTYPE html> //メッセージボディ↓
<html> //
<head>
<meta charset='UTF-8'>
<title>Servlet/JSP Samples</title>
</head>
<body>
<p>Hello, World!</p>
</body> //
</html> //メッセージボディ↑
1行目ステータスラインには
HTTPプロトコルのバージョン ステータスコード(有名なのだと404とか)