tak220's Programming Learning Reports

プログラミングスクールに入会した駆け出しエンジニアによるブログです。

Web技術の基本的な用語を説明してみる

はじめに

今回は、Webの基本となる技術を学べる著書 「『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのか」 著: 小森 裕介 を読みましたので、その中から学習した用語の説明を行いたいと思います。

プロトコル

コンピュータ同士が通信をやり取りする際に、情報のやり取り方法をあらかじめ決めておかなければなりません。この取り決めをプロトコル (Protocol) といいます。

例えば、音や光の長短の組み合わせで文字を表すことのできるモールス信号は、あらかじめどの組み合わせが何の文字を表すかを国際的な規格により決められています。このモールス信号もプロトコルの一種です。

HTTP (HyperText Transfer Protocol) は、WebサーバとWebクライアントが情報のやり取りをするために考案されたプロトコルです。

ポート番号

コンピュータが通信を行う際、Webの閲覧やファイルの転送、メールの送受信など、様々な種類の通信を行っています。ポート番号 (Port Number) は、それがどの種類の通信なのかを区別するために割り当てられた番号のことです。

ポート番号は0番から65535番までの範囲で設定されており、その中でも代表的なプロトコルで使用されるポート番号は「well-known ports」と呼ばれています。

代表的な「well-known ports」の一部

ポート番号 プロトコル
80 HTTP
20, 21 FTP (ファイル転送)
25 SMTP (メールの送信)
443 HTTPS

ポート番号があることで、通信が正確かつ効率的に行われます。

リクエスト、レスポンス

リクエスト (Request) とは、クライアント (主にWebブラウザ) がサーバに対して行う要求のことです。

ユーザーがWebページにアクセスすると、ブラウザはサーバにHTTPリクエストを送信します。そこにはページ表示の要求やフォームに入力した情報の送信などが含まれます。

そのリクエストに対してサーバがクライアントに返す応答のことをレスポンス (Response) といいます。レスポンスによってリクエストした内容の結果が返ります。

ステートフル

サーバがクライアントとの過去のやり取りを覚えている状態のことをステートフル (Stateful) といいます。

例えば、ユーザーがサーバにログインをした後、別の通信を行う際に、サーバがユーザーの状態を「ログイン済み」として覚えているような状態のことを指します。

ファイルのやりとりを通信で行うFTPは、通信のやり取りを行うたびにその内容を覚えているため、ステートフルなプロトコルです。

ステートレス

ステートフルに対して過去のやり取りを覚えていない状態のことをステートレス (Stateless) といいます。

HTTPはステートレスなプロトコルのため、毎回情報を保持しない状態で通信します。

クッキー

ではサーバはどうやってHTTP上でユーザーのログイン状態などの情報を保持するのかというと、クッキー (Cookie) という技術を利用することによって実現しています。

サーバはユーザーがログインしている状態をHTTPレスポンスを利用してクッキーと呼ばれる小さな情報をクライアントへ送ります。

クライアントは次にリクエストする際、受け取ったクッキーをそのまま送信します。

このやり取りのおかげで、ステートレスなプロトコルであるHTTPでも状態の保持が実現できるわけです。

さいごに

Webの仕組みを知ることができて大変勉強になりました。

ご覧いただきありがとうございました。

参考: 小森 裕介 「『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのか」, 技術評論社, 2010年4月10日

Happiness Chain に入会するまでの経緯と入会した感想

はじめに

はじめまして!

Webアプリケーションエンジニアを目指しているtak220です!

10月にプログラミングスクール「Happiness Chain」に入会して2か月が経過しました。

初めての記事では入会に至るまでの経緯と入会した感想をお伝えできればと思います。

入会するまでに取り組んできたこと

私は一年ほど前に業務効率化を主な仕事とする職に就き、独学でプログラミングの学習をはじめました。

VBAからスタートし、SQLPythonなどを学習してきました。

VBAは仕事で書くことが多く、SQLは仕事で少しと100本ノックなどネットにある問題をよく解いていました。Pythonは本を読みながら書いたり、Paizaの問題を解くなどしていました。

インプットは主にネット検索、YouTube、そして技術書を読むことです。

本なんてほとんど読む習慣がなかったのに、技術書を読むことが好きになりました。

下記は入会するまでに読んだ本です。

  • パーフェクト Excel VBA 著: 高橋 宣成
  • 絵で見てわかるITインフラの仕組み 新装版 著: 山崎 泰史; 三縄 慶子; 畔勝 洋平; 佐藤 貴彦
  • CODE: コードから見たコンピュータのからくり 著: Charles Petzold
  • コンピュータはなぜ動くのか 第2版 知っておきたいハードウエア&ソフトウエアの基礎知識 著: 矢沢 久雄
  • SQL 第2版 ゼロからはじめるデータベース操作 著: ミック
  • 達人に学ぶDB設計 徹底指南書 著: ミック
  • シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全 著: 酒井 潤
  • 新・明解Pythonで学ぶアルゴリズムとデータ構造 著: 柴田 望洋
  • UMLモデリングレッスン 著: 平澤 章
  • 【令和5年度】 いちばんやさしい 基本情報技術者 絶対合格の教科書+出る順問題集 著: 高橋 京介

Kindleがセールをしている時にたくさん買っちゃうので、まだまだ読んでいない本がいっぱいあります💦

なぜ入会したか

おそらくみなさんそうだと思いますが、次は何に取り組めばいいのかわからなくなったからです。

元々プログラミングスクールに入ることなんて考えていませんでしたが、たまたま誰かが書いてくれていたブログを見てHappiness Chainのことを知り、レベルの高そうな内容に魅力を感じました。

知ってから入会するまでかなりの時間悩みましたが、今では早く入っておけば良かったとすら思っています。

入会した感想

ロードマップがあるだけで最高!

次は何に取り組めばいいのか悩まなくていい!

今自分が取り組んでいることに不安を覚えなくていい!

これって無駄な時間がなくなるので、本当に素晴らしいことです。

コンピュータの世界は進歩が早すぎる、そして分野が広すぎるので、私のような素人には何から手を付ければいいのかわかりません。そこに道筋を示してくれるのですからそれだけでも入って良かったと思います。

さらにロードマップのレベルが高い!

Happiness Chainのカリキュラムを見てください。

最先端の技術をこんなにたくさん学べるプログラミングスクールなんてありますかね?

これだけの内容をしっかりとこなせば、あとは自分の努力次第で結果が付いてくると思います。

特にプログラミング言語以外の学習って独学だと疎かになってしまうと思うので、そこもしっかりと組み込まれているのがいいですよね。

ひとつのテーマごとにアウトプット課題が設定されている

基本的に上記のカリキュラムひとつずつにプログラミングの課題やブログを書くなどのアウトプットが設けられています。

独学だと余程のやる気がなければ、ブログなどのアウトプットはなかなかできません。

自分の言葉で説明することは理解力を測るうえでとても大事なことなので、しっかりとこなしていきたいと思います。

他のメンバーの発信が励みになる

Happiness Chainは日報やX、ブログなど、様々な手段で学習の進捗を発信することを推奨しています。

これのおかげで他のHappiness Chain生の学習状況を知ることができ、大変励みになります。

みんなやる気がたくさんある人たちばかりなので、私も学習意欲を高く保つことができます。

さいごに

今のところHappiness Chainに入会して良かったです。

この先どうなるかはわかりませんが、ロードマップを最後まで進められるように頑張ります!

最後まで読んでいただきありがとうございました。