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をどう組み込むのかな?という感じで、早く先に進みたい🤩