クロ@プログラミングと釣り好き大学生のブログ

プログラミングと釣りと、ときどき日常生活

プロになるためのweb技術入門を読んで 2-1

 HTTPのお話

さて、久しぶりの投稿になりましたが、

今回はHTMLのやり取りに使われる HTTPについて二回に分けて書いていきます。

 

1回目は

の流れで書いていきます。

 

っとその前に、そもそもHTTPってなんだっけ?

HTTPはWWWの世界でHTMLのやり取りをするために定められた通信プロトコルの一つです。通信プロトコルはやり取りする。情報の「伝達手段」と「意味付けの役割」を果たします。

 

よしよし、ではいきましょう。

 

IPアドレスTCP/IP

 

まずはIPアドレス! 二言で言うならば、「コンピュータに割り当てられるインターネット上の住所」です。 (一言では難しかった。)

 

例として、前回の記事より、http://www.pizaya.jp/special_menu/index.htmlをあげます。これでインターネット上のコンテンツを指定します。しかしスキームやホスト名やパス名で構成されているこのURLは人間には何が書いているのかわかりますが、コンピュータはそうはいきません。そこでコンピュータにもわかりやすくするために出てきたのがIPアドレスです。

実際に見てみると、こんな感じ→193.234.0.1。 うん。何を意味してるのかわからない。コンピュータすごいなおい。これでコンピュータを識別しています。

 

IPアドレスの種類で「グローバルIPアドレス」と「プライベート IPアドレス」があります。簡単に言うと

  グローバルIPアドレス:世界目線でのインターネット上の唯一のアドレス

  プライベートIPアドレス:オフェスや家庭内など一定の範囲で使われるアドレス

前者は「固定電話」後者は「内線」で例えると分かりやすいです。

固定電話は知っての通り、国別(日本は03-)番号から始まり、都道府県や市町村ごとに振られていて被る事はないですよね!グローバルIPアドレスも同じような考えです。

一方で内線1番や2番などはどこの会社でも意味は違うけど同じ番号が使われています。プライベートアドレスも重複しても良いアドレスの事です。

 

IPアドレスの内容と種類をお話しましたが、実際にこの IPアドレスを運ぶ運び屋が

 TCP/IPです。現実世界で言う「郵便屋さん」です。僕らが宛先(コンピュータ上で言うならIPアドレス)を指定して相手に手紙(コンピュータ上の情報)を届ける際の届け役ですね。TCP/IPはブラウザから受け取ったHTTPリクエストを小さな単位に分割してwebサーバにたどり着いた後に再構築します。

 

DNSサーバとポート

 

 DNSサーバ---通訳的な存在

IPアドレスはわかったけど、実際のURLを入力するアドレスバーにはIPアドレス使ってないじゃんと思いましたが、なんと裏で中継してくれる奴がいるんです。

それがDNSサーバです!

DNSサーバがURL→IPアドレスに変換してクライアントにに届けてくれます。それをクライアントはwebサーバに届けて私たちはインターネットを利用できています。

ここまでで、宛先のコンピュータを探し出す流れは掴めました。

 

ポートとは---情報の待ち受け桟橋的な存在

インターネットの世界ではHTTP以外でも様々なプロトコルで情報がやり取りさています。ex.電子メールやwebサイトの更新など

TCP/IPではその中でどの情報をどこのホスト内で処理していいのかわからないままです。そこでコンピュータの中で各アプリケーションが情報を待っていいます。イメージは港町のたくさんのそれぞれの桟橋の上に職人(アプリケーション)が立っている感じです。

これで各職人さんが情報を処理してくれます。

ちなみにHTTPのプロトコル番号は80で、普段はホスト名の中で省略されています。

 

 POSTとGET

 

今までで、大体のHTTP通信からwebページの表示までの流れでしたが、webアプリケーションへ私たちが情報を流すにはまだ足りません。そこで出てくるのがPOSTとGETメソッドです。これでクライアントがパラメータ(入力した値のようなもの)をwebサーバが受け取る際に使うメソッドです。POSTと GETは渡し方の違いです。実際に見て見ましょう。

 

GETメソッドでの例:

https://www.kakezan.jp/webtext/do_calc_get.php?num1=50&num2=20

(ちなみに下線部がパラメータ=値)

 

POSTメソッドでの例:

https://www.kakezan.jp/webtext/do_calc_post.php

 

 

この二つ、何か違いますね。…..そうです。パラメータが見れるか見れないかの違いですね!

これでわかると思いますが、

GETメソッド=パラメータが見える=セキュリティ弱

POSTメソッド=パラメータが見えない=セキリュティ 比較的 強

 

ん?なら全部POSTメソッド使えばいいじゃんってなると思いますがGETも POST良いところと悪いところがあります。

 

  GETメソッド POSTメソッド
セキュリティ 低い 比較的高い
パラメータの長さ ソフトウェアによっては255文字以内 制限なし
パラメータの保存・再現 しやすい しにくい
副作用が発生しない 期待される 期待されない

 

って感じです。

同じ処理を繰り返す場合はGETが良さそうで、使い分けが必要ですね。

 

てことで HTTPのセクションは以上です!!

次から本読む時は重要な点を付箋紙で抑えてそこをまとめると楽になりそう。