【PHP】HTTPでの通信の特徴と基礎知識
PHPには直接関係がありませんが、PHPを使ってサーバーとのやり取りをする上で、
欠かせない知識であるHTTP通信の特徴と基礎知識について紹介します。
HTTP通信について
HTTPを使った通信の場合、GET、POST、PUT、PUATCH、DELETEなどのメソッドというものが存在します。
たとえば、GETならデータを取得しますし、POSTならデータの作成、更新をします。
HTTP通信の特徴
HTTPは、リクエストの前後で状態を保持しない、ステートレスなプロトコルです。
FTPやSSHは、逆にリクエストの前後で状態を保持するステートフルなプロトコルです。
HTTPは、ステートレスなため、たとえばサーバーに対して2回目のリクエストを行った場合、2回目のリクエストのとき1回目の内容を知らないという状態です。
HTTPでは基本的にその都度の通信で完結し、その前後の状態は保持されません。
ただし、サーバーには前後の状態を保持するセッションという仕組みも存在します。
GETメソッドの特徴
GETメソッドの特徴として、パラメータがURLの一部としてサーバーに送信されます。
eg./path?param1=value1¶m2=value2
ブラウザのキャッシュは有効になります。ただし、Apacheの設定によります。
URLには、HeaderとBodyが存在します。
Headerは、サーバーとの通信における設定値を設定して送ります。
ブラウザキャッシュもこのHeaderに設定します。
GETメソッドの場合、Bodyは空で送信されます。
POSTメソッドの特徴
GETメソッドと違い、パラメータがURLの一部ではなく、Body部分に設定して送信されます。
eg. Bodyにparam1=value1 param2=value2
Headerは、同様でサーバーとの通信における設定値を設定して送ります。
ブラウザのキャッシュは無効になります。