Webの基礎知識
> 정보 출처: https://dreamhack.io/
Webの基礎知識
- HTTP
Webブラウザを使用すると、アドレスウィンドウにHTTPまたはHTTPSが表示されます.たとえば、Webブラウザを使用してDREAMコアホームに接続すると、アドレスウィンドウに
https://dreamhack.io
が入力されていることがわかります.HTTPまたはHTTPSは、Scheme(プロトコル)に相当するURIのコンポーネントである.プロトコルは、コンピュータ内またはコンピュータ間でデータを交換する方法を定義するルール・アーキテクチャです.
HyperTextトランスポートプロトコル(HTTP)、HyperTextトランスポートプロトコルセキュリティソケット層(HTTPS)は、Web上の通信を定義するプロトコルである.
TCP
またはTLS(暗号化TCP)を使用して通信を行い、基本ポートは80(HTTP)、443(HTTPS)ポートである.ポート番号はサーバの設定で変更できます.サーバのポート番号は必ずしも80443ではありません.たとえば、Webサーバで最も一般的なTomcatサーバのデフォルトポート番号は8080です.
HTTPSは,HTTPに存在する問題であるデータのコメント転送を補うために出現する.しかしHTTPとHTTPSのコア構造と動作原理は同じであるため、総称してHTTPと呼ぶこともできる.
HTTPは,ユーザからサーバへの要求とサーバからのユーザ要求への応答に分けられる.
次の図は、HTTPリクエストとレスポンスの簡単なデータ構造です.
Webの基礎知識
- HTTP Request
HTTPリクエストとは、サーバへのリクエストを意味します.ユーザとサーバが互いに通信するためには,互いに理解するデータ構造を伝達する必要がある.
HTTPの構成では、各行を
CRLF
まで改行しなければならない.HTTPリクエストの構成において、第1行は、ユーザがサーバをリクエストする際に実行すべき動作
Method
、WebリソースをリクエストするパスPath
、使用するHTTPバージョンを示すVersion
からなる.2行目から
Header
部です.Headerは이름: 값
の形で構成されている.Headerは状況に応じて多くのデータを含む可能性があるので、CRLFをもう一度出力してHeaderセクションの最後を表示します.
最後に、Bodyはユーザデータを含む部分である.
-要求コンポーネント
- Method
これらの方法はいずれも異なる目的のために設計されていますが、サーバの設定方法やWebアプリケーションの処理方法によって異なる場合があります.
- Header
Webの基礎知識
- HTTP Response
HTTP応答とは、ユーザ要求に対するサーバの応答を意味する.
応答の構造も要求の構造と同様に、各行は
CRLF
で改行しなければならない.HTTP応答の構造の第1行は、サーバの状態応答コードStatus Code、すなわちバージョンとユーザ要求の状態応答コードから構成される.2行目からヘッド部分です.Header部分の各行は
이름: 값
の形で構成されている.CRLFをもう一度出力してヘッダの終了を表示し、サーバの応答データ部Bodyからなる.ネットワーク・ハッカーでは、ユーザーの入力に対するサーバの応答に注目する必要があります.たとえば、悪意のある入力を送信したときに500 Status Code(内部サーバエラー)に応答した場合、その入力がサーバに何らかの影響を及ぼしたと判断し、サーバに脆弱性が発生する可能性があります.
- 200 OK
Request
GET
/index.html
HTTP/1.1
Host: dreamhack.io
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
Response
HTTP/1.1
200 OK
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 61
Connection: Keep-Alive
Content-Type: text/html
<!doctype html>
<html>
<head>
</head>
<body>
</body>
</html>
- 404 Not Found
Request
GET
/not_found.html
HTTP/1.1
Host: dreamhack.io
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
Response
HTTP/1.1
404 Not Found
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 255
Connection: Keep-Alive
Content-Type: text/html
<!doctype html>
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /not_found.html was not found on this server.</p>
<hr>
<address>Apache/2.4.29 (Ubuntu) Server at dreamhack.io Port 80</address>
</body></html>
- 500 Internal Server Error
Request
POST
/login
HTTP/1.1
Host: dreamhack.io
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
Content-Length: 16
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
username={공격코드}
Response
HTTP/1.1
500 Internal Server Error
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 0
Connection: close
Content-Type: text/html
-応答コンポーネント
- Status code
-201 Created
-301 Moved Permanetly
-302 Found
-400 Bad Request:ユーザーによって渡されたデータまたは構造構文エラーのため、サーバがリクエストを理解できないことを意味します.
-403 Forbidden:ユーザーがWebリソースにアクセスする権利がないことを示します.
-404 Not Found:ユーザーの要求に応答できるデータがないWebリソースパスを示します.
-405メソッドNot Allowed:ユーザ要求を表すメソッドはサーバが許可しないメソッドです.
-500内部サーバーエラー:サーバーにエラーが発生したことを示します.
-503 Service Unavailable:サーバがユーザーの要求を処理する準備ができていないことを示します.
- Header
Reference
この問題について(Webの基礎知識), 我々は、より多くの情報をここで見つけました https://velog.io/@new__world/오늘의-공부-11テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol