SSL/TLSとGitについて

HTTPとHTTPS

HTTP(Hyper Text Transfer Protocol)と、HTTPS(Hypertext Transfer Protocol Secure)はホームページを見るときにどんな通信手段を用いるのかというルール。URLの始まりが「https://」だと通信内容が暗号化される。「http://」から始まっていると暗号しないで通信しているということ。

SSL(secure sockets layer)

SSLはインターネット上でデータを安全にやりとりするプロトコル
「データの暗号化」と「通信相手が信頼できることの確認」をする。
Webブラウザのアドレス入力欄やステータス・バーに錠前マークが出ていたり、アドレス欄が「https://~」となっている時はSSL通信をしている。
公開鍵暗号方式を使って「暗号通信で使う共通鍵」を安全に共有し,共有した共通鍵を使って暗号通信をする。

TCPとは

送ったデータが相手に届いたか、その都度確認しながら通信するやり方。
信頼性は高いが転送速度が低いという特徴がある。

Gitとは

ソースファイルのバージョン管理システム

ローカルリポジトリの基本的な使い方

リポジトリを新規作成、または既存のリポジトリを初期化

$ git init

ワークツリーにあるファイルの状態を表示する

git status

ファイルをインデックスに登録する

git add <file>..

インデックスに追加した変更をリポジトリに記録する

git commit -m "<コメント>"

コミット時のログを表示する

git log

リモートリポジトリを使ってローカルリポジトリの変更履歴を共有する方法

GitHub

Gitはリポジトリ(管理保存場所)先として、ローカル、もしくはリモートを選択出来るが、GitHubはそのリモート先にあたるもので、プロジェクトの管理をWeb上で行うことが出来るサービス。

Fork:フォーク

公開しているプロジェクトに対して、ソースファイルを自分のリポジトリにコピーを行う。

Pull Request:プルリクエス

カスタマイズしたソースファイルを、元々の開発者に対して利用してもらうようリクエストを送る。

リモートリポジトリを作成

git remote add <name> <url>

例)$ git remote add origin https://[your_space_id].backlog.jp/git/[your_project_key]/tutorial.git

リモートリポジトリにプッシュする

$ git push <repository> <refspec>...

例)$ git push -u origin main
repositoryはプッシュ先のアドレス、refspecはプッシュするブランチを指定。
・実行オプションで-uを指定すると、次回以降はそのブランチ名の指定を省略できる。
・クローンしたリポジトリでは、pushのパラメータのorigin mainは省略できます。

リモートリポジトリをクローンする

$ git clone <repository> <directory>

例)$ git clone https://nulab.backlog.jp/git/BLG/tutorial.git tutorial2
repositoryはリモートリポジトリのURL、directoryは複製先のディレクトリ名を指定。

リモートリポジトリからプルする

$ git pull <repository> <refspec>...

例)$ git pull origin main

「git clone」と「git pull」の違い

  • git clone → リモートのリポジトリをそのままコピーして取得する。使い道は最初の一回だけ。リモートのリポジトリをそのまま新規作業リポジトリとして、コピーする。
  • git pull →リモートで更新された部分を自分のローカルリポジトリに反映させること。使い道はプロジェクト進行に連れて複数回使用する。具体的にはリモートで他の人が更新したら、その更新を取り込むためにgit pullで自分のローカルに反映させます。

感想

TLSについての勉強をしていて、443番ポートの話が出てきて、sshのプラクティスで出てきたウェルノウンポートとはこれのことか!と具体的な例が分かって嬉しかった。
・今までなんとなくだったhttpとhttpsの違いがよく分かった!
Webサービスを作る時にはこのTLSをどう組み込むのかな?という感じで、早く先に進みたい🤩