はじめに
IT未経験者がWebの土台となる基本技術を学ぶため、ブログを執筆しました。
また、本記事は以下の記事を読み執筆をさせていただきました。
参照:https://gihyo.jp/book/2024/978-4-297-14571-2
ステートフル
ステートフルなプロトコルでは通信の開始と終了が明確である。
その間の一連の通信が識別できるようになっている。
人間同士のコミュニュケーションに置き換えると電話でのやりとりに例えられる。
電話は、相手につながって通話を開始すると通話を切るまで会話が出来る。
この一連の流れをセッションと呼び
この状態のことをステートフルな状態だと言える。
ステートレス
状態を持たないプロトコルのこと
ステートレスなプロトコルでは個々のリクエスト・レスポンスに対して関係性を定義しない。
手紙でのやりとりに例えることが出来る。
個々のやりとりが独立しており、ステートレスな状態であると言える。
どちらの状態が求められるのか
結論、ステートレスな状態が求められる。
理由は、大量のリクエストを処理するにはサーバを複数用意して
分担させるのが有効であり
ステートレスなリクエストであれば、どのサーバでもリクエストを処理できるため
ステートレスな状態が求められる。
サーバ側に状態を持たせる(ステートフル)ではシステム規模に応じて
サーバを増やしにくくなるのも要因の一つである。
リクエスト
クラアントから相手のサーバに接続し、情報を要求すること
例:URLに直接アクセスする。(アドレスバーに直接URL入力、ブックマークからアクセス)
レスポンス
サーバからクライアントに対する返答のこと
例:そのままHTMLを返す、DBからデータを取得してHTMLを生成して返す。
Webの世界での通信
Webの世界ではクライアントとサーバがHTTPの取り決めに従って情報を交換する事で
成り立っている。
HTTPは(Hypertext Transfer Protocol)と言う名称
WebブラウザとWebサーバ間での通信で使われているプロトコルのこと。
プロトコル
コンピュータ同士が通信する際の通信方法の取り決めのこと。
例:FTP ファイルを転送するプロトコル
IP インターネット上でデータを送受信するためのプロトコル
クッキー
サーバとクライアントの間で保持しておきたい情報をクッキーという形でクライアント側(Webブラウザ)側に持たせておく。
一般的な使い方は、クライアントの識別に使われる。
例:病院などで受付番号を発行されるのと同じと考えればわかりやすい。店舗から受け取った番号を示すことでXX番目に受付をしたお客様として識別してもらえる。
ポート番号
まず最初に、IPアドレスというものがある。
IPアドレスはコンピュータを識別するために使われており、
データの行き先を管理するのに使用されている。
IPアドレスは送信先や送信先を表す住所のようなものである。
IPアドレスは接続したいコンピュータは指定できるがコンピュータが提供する
サービスまでは指定できない。
そのため、ポート番号が必要である。
ポート番号は0から65535番まで番号が振り分けられている。
IPアドレスで相手先のコンピュータを特定し、ポート番号でその中のプログラムを特定する。
例:IPアドレスを建物の住所、ポート番号は部屋の番号は何号室かと考えるとわかりやすい。
Webサーバのように、通信を待ち受けるプログラムでは標準で利用すべきポート番号がプロトコルごとに決めれられている。
例:http 80番 https 443番など
感想
IT未経験者がこの参考書をはじめて手に取った際、分厚さに圧倒されてしまったが
読み始めると技術の時代背景、解決しようとした問題、実際にアプリやターミナルを使った実装例を取り上げており、とても理解しやすかった。
技術を点から線、線から面の理解にしていくことでより技術を学ぶ楽しさを知る事ができた。
色々、わからない単語がありこの課題にも時間がかかったが自分が納得いくまで基礎・基本を学べたのも良かった。本を読むことも習慣になったので読書が好きになれた。
改善点としては、完璧に理解するのではなく、ここはこういうことをいっているんだなとざっくりとした理解で進めることも大切であると感じた。
この本を読み、一番印象に残った箇所はフレームワークの強さだと感じた。フレームワークは便利な反面、プログラミング言語をしっかりと把握しておかなければ要件の変化や発生した問題を解決できないとう事態に直面するのでフレームワークを使うことも大事だがそれぞれの言語をしっかりと理解する必要があると感じた。