【GASを使ったHTTP通信】HTTP通信について
1.HTTP通信とは
HTTPはHyperText Transfer Protocolの略です。
クライアントとサーバー間で行われる通信方式の一つで、ハイパーテキストを転送するための通信プロトコルです。
テキスト(HTMLなど)によって記述されたwebページなどのコンテンツを、送受信するために用いられます。
クライアントからサーバーへの要求はリクエストと呼ばれ、サーバーからクライアントへの返答をレスポンスと呼びます。
・よく分からない人向けのざっくりとした例え
HTTP通信は葉書の送り合いみたいなものです。
Aさん(クライアント)からBさん(サーバー)へ葉書(ハイパーテキスト)を送るような感じです。
もう少し細かく言うと、AさんはBさんに荷物(ファイル)を送って貰うために、Bさんに送り先などの必要事項と送って欲しい荷物等を書いた葉書を送り、Bさんが受け取った葉書に従って荷物を送り返す行為です。
2.HTTP通信のリクエストメソッドの例
・GET
指定されたURIのリソースを取り出す。
HTTPの最も基本的な動作である。
サーバーはクライアントにデータを返す。
・POST
GETとは反対にクライアントがサーバーにデータを送信する。
webフォームや電子掲示板への投稿などでよく使用される。
GETと同じく、サーバーはクライアントにデータを返せる。
・PUT
指定したURIにリソースを保存する。
URIが指し示すリソースが存在しない場合は、サーバーはそのURIにリソースを作成する。
画像のアップロードなどが代表的
・DELETE
指定したURIを削除する。
・TRACE
サーバーまでのネットワーク経路をチェックする。
サーバーは受け取ったメッセージをレスポンスのデータにコピーして応答する。
・CONNECT
TCPトンネルを接続する。暗号化したメッセージをプロキシサーバを経由して転送する際に用いる。
3.レスポンスの中身
・ステータス行
サーバーでの処理結果を伝える情報がある。
ステータスコード例
・102 Processing
処理継続中のためレスポンスを提供出来ないことを示す。
・200 OK
リクエストが成功したことを示す。
成功の意味はリクエストによって異なる。
・404 Not Found
サーバーがリクエストされたリソースが発見出来ないことを示す。
人によってはよくこのエラーコードに出会うらしい
・418 I’m a teapot
サーバーはティーポットでコーヒーを淹れようとする試みを拒否します。
通常では出て来るはずの無いネタエラー構文。
しかし、最近とある国の国防省公式webで出たとか...
・500 Internal Server Error
サーバー内で処理が分からない事態が発生
・メッセージヘッダー行
webサーバーのソフトウェア情報、データのタイプ、圧縮方法等が記載されている。
・メッセージボディ行
クライアントに送るHTMLや画像のデータが記載されている。
4.まとめ
HTTP通信はクライアントとサーバーでハイパーテキストを転送するための通信プロトコルである。
クライアントからサーバーへの要求はリクエストと呼ばれ、メソッドを目的に合わせて使い分けしている。
サーバーからクライアントへの返答はレスポンスと呼ばれ、メソッドに対応した返答を返している。
参考URL
・https://ja.wikipedia.org/wiki/Hypertext_Transfer_Protocol#%E5%8B%95%E4%BD%9C
・https://www.web-knowledge-info.com/wp/web_basic_knowledge4/#6%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88
・https://developer.mozilla.org/ja/docs/Web/HTTP/Status#%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%AC%E3%82%B9%E3%83%9D%E3%83%B3%E3%82%B9
・https://www.itmedia.co.jp/news/articles/2202/24/news179.html