###### tags: `HTTP` # HTTP通信について ## Route53、CloudFront、S3利用時のシーケンス ```mermaid sequenceDiagram ブラウザ->>Route53: www.aaaa.com(CloudFront)のIPは? Route53->>ブラウザ: IPはxxx.xxx.xxx.xxx ブラウザ->>CloudFront: GET /index.html CloudFront->>S3: GET /index.html S3->>CloudFront: index.htmlの内容 CloudFront->>ブラウザ: index.htmlの内容 ブラウザ->>ブラウザ: index.htmlの内容表示 ``` ## 通信の階層(TCP/IP, OSI参照モデル) https://www.infraexpert.com/study/tcpip.html より * ネットワーク層(L3)が、IPアドレス * トランスポート層(L4)が、TCP/UDPポート * アプリケーション層(L7)が、HTTPプロトコル  https://ja.wikipedia.org/wiki/ルーター より  ## HTTPプロトコル ### HTTPリクエスト https://www.atmarkit.co.jp/ait/articles/1703/29/news045.html より  ### リクエスト/レスポンスの ヘッダ、ボディ http://www.tohoho-web.com/ex/http.htm#message より #### HTTPのサンプル ブラウザで Webページを開く際、ブラウザはサーバに下記のような要求メッセージを送信します。 ```HTTP GET / HTTP/1.1 Accept: image/gif, image/jpeg, */* Accept-Language: ja Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (Compatible; MSIE 6.0; Windows NT 5.1;) Host: www.xxx.zzz Connection: Keep-Alive ``` これに対してサーバは下記のような応答メッセージを返します。 ```HTTP HTTP/1.1 200 OK Date: Sun, 11 Jan 2004 16:06:23 GMT Server: Apache/1.3.22 (Unix) (Red-Hat/Linux) Last-Modified: Sun, 07 Dec 2003 12:34:18 GMT ETag: "1dba6-131b-3fd31e4a" Accept-Ranges: bytes Content-Length: 4891 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html <!DOCTYPE html> <html> : </html> ``` ### nc で手動でHTTPリクエストを投げてみる #### 200ステータス:正常応答 ```shell= $ nc abehiroshi.la.coocan.jp 80 GET / HTTP/1.1 host: abehiroshi.la.coocan.jp HTTP/1.1 200 OK Date: Tue, 17 Jan 2023 12:34:08 GMT Content-Type: text/html Content-Length: 538 Connection: keep-alive Last-Modified: Thu, 27 Feb 2020 07:10:16 GMT ETag: "21a-59f8969af8600" Accept-Ranges: bytes Server: Apache <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta name="GENERATOR" content="JustSystems Homepage Builder Version 20.0.6.0 for Windows"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>�������̃z�[���y�[�W</title> </head> <frameset cols=18,82> <frame src="menu.htm" marginheight="0" marginwidth="0" scrolling="auto" name="left"> <frame src="top.htm" marginheight="0" marginwidth="0" scrolling="auto" name="right"> <noframes> <body></body> </noframes> </frameset> </html> ``` #### 300系ステータス:リダイレクトレスポンス ```shell= $ nc yahoo.co.jp 80 GET / HTTP/1.1 host: yahoo.co.jp HTTP/1.1 301 Redirect Date: Tue, 17 Jan 2023 12:40:59 GMT Connection: keep-alive Server: ATS Cache-Control: no-store Location: https://www.yahoo.co.jp:443/ Content-Type: text/html Content-Language: en Content-Length: 1 ``` ## Apache利用時 ### シーケンス ```mermaid sequenceDiagram PC->>apache: GET /index.html apache->>disk: index.htmlの読み込み disk->>apache: index.htmlの内容 apache->>PC: index.htmlの内容 apache->>disk: ログ書込み PC->>PC: index.htmlの内容表示 ``` ### Aapcheの定義や参考リンク [コンテンツの場所](https://httpd.apache.org/docs/2.4/ja/mod/core.html#documentroot) [ログの出力定義](https://httpd.apache.org/docs/2.4/ja/mod/mod_log_config.html#customlog) [WindowsのApacheのログローテートでログを削除する方法](https://beyondjapan.com/blog/2016/09/windows-apache-logrotate/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up