プログラミングの学習中に出てきた単語をまとめてみた【随時更新】

 僕がプログラミングをしていく中で出てきた単語をまとめています。

(最新のものをどんどん上に追加していってるだけなので、順番は適当です。50単語ぐらいになってきたらきちんと分類していきます。)

##プログラミング全般において使われる用語

###CSVファイル（シー・エス・ブイ）
CSVファイルとCSVは「Comma Separated Value（＝カンマ（,）で区切った値）」の頭文字をとったもの。

その名の通り、値をカンマで区切って保存しているファイルのこと。

###エントリーポイント
>エントリーポイントとは、プログラムを実行するうえで、プログラムやサブルーチンの実行を開始する場所のこと。
[エントリーポイント](https://www.weblio.jp/content/%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88)

要するに、一番最初に実行されるメソッドやファイルって感じかと。

例えば、Laravelのエントリーポイントは`/public/index.php`となっていますね。

##DocumentRoot（ドキュメントルート）
>DocumentRootとはWeb上に公開することのできるディレクトリのルートのことです。
[第8回　知っておきたいApacheの基礎知識 その4](https://gihyo.jp/admin/serial/01/unix/0008#:~:text=DocumentRoot%E3%81%A8%E3%81%AFWeb%E4%B8%8A,%E3%82%92%E9%85%8D%E7%BD%AE%E3%82%92%E3%81%97%E3%81%BE%E3%81%99%E3%80%82)

##Axios（アクシオス）
>axiosとはブラウザやnode.js上で動くPromiseベースのHTTPクライアントです。 jQueryで言うところのjQuery. ajaxであり、非同期にHTTP通信を行いたいときに容易に実装できます。 Vue.jsでは非同期通信を行うのにaxiosを使うのがスタンダードとなっております。
[【Ajax】axiosを使って簡単にHTTP通信](https://www.willstyle.co.jp/blog/2751/#:~:text=axios%E3%81%A8%E3%81%AF%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%82%84,%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%8A%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82)

##Laravel系
Laravel系の用語をまとめます。

###サービスコンテナ
複数のサービスを1つにまとめる（サービスコンテナに入れる）感じ。
サービスコンテナにサービスを入れるためには`bindメソッド`を使う。

###サービスプロバイダ
サービスプロバイダーの役目はサービスコンテナへサービスを登録すること。

`config/app.phpのproviders配列`にプロバイダーを記述することでサービスコンテナへ登録できる。


###Socialite
>OAuthプロバイダによるシンプルで便利な認証方法も提供しています。
[Laravel 6.x Laravel Socialite](https://readouble.com/laravel/6.x/ja/socialite.html)
要するに、SNSを使った認証（ログイン）などを実装する時に使える。


##OAuth（オーオース）

要するに、ログイン認証で使える技術と思えばOKかと。

>OAuthは，以下の特徴を持つ「認可情報の委譲」のための仕様です。

>・あらかじめ信頼関係を構築したサービス間で
・ユーザの同意のもとに
・セキュアにユーザの権限を受け渡しする

>サービス間で認可情報を受け渡せると，あるサービスがユーザの認可のもとで別のサービスの管理する情報の取得／追加／更新／削除などを行えるようになります。OAuthに対応したサービスでは，ユーザが外部サービスにパスワードを教えることなく，認可情報の委譲が可能です。

>[第1回　OAuthとは？―OAuthの概念とOAuthでできること](https://gihyo.jp/dev/feature/01/oauth/0001)

ちなみに[一番分かりやすい OAuth の説明](https://qiita.com/TakahikoKawasaki/items/e37caf50776e00e733be)の記事は画像付きで凄くわかりやすく解説されている。

##ベンダープレフィックス
>CSS3で採用される予定の機能が各ブラウザで先行実装されていますが、それらの機能を動作させるには、 現状ではプロパティや値の先頭に-moz-や-webkit-などのベンダープレフィックスを付ける必要があります。

##npm
>Node.js（のーどじぇいえす）のパッケージを管理するもの
npmはNode.jsをインストールすると一緒についてくる。
Node Package Manager の略
参考：[npmとは](https://qiita.com/akitxxx/items/05f973df9c54cec23419)

下記の方法でパッケージをインストール。

```
npm install パッケージ名
```

##Node.js
>Node.jsとは
JavaScriptは本来クライアントサイドで動く言語。HTMLで書かれたページに動きをつけたりする。
Node.jsはサーバサイドで動くJavaScriptである。
参考：[npmとは](https://qiita.com/akitxxx/items/05f973df9c54cec23419)

##オープンソースとは
>オープンソース とは、ソースコードを商用、非商用の目的を問わず利用、修正、頒布することを許し、それを利用する個人や団体の努力や利益を遮ることがないソフトウェア開発の手法

##cookie（クッキー）とは
>Webサイトとユーザー間でやり取り・保存されるアクセス情報

クッキーって勝手にGoogleChromeの機能かと思ってたけど全然違うかった。

クッキーについてもうちょい詳しく↓
>Webページ(TwitterやFacebookなど)でログインした時の情報を保存して、入力する手間を省いてくれる仕組みのこと。
ログインをしたあとの画面(URL)にログアウトしたあとアクセスするとエラー画面になる。ログイン状態を保つ仕組みでもある。
Cookie内にはpasswordやuser_idなどがあるためセキュリティ上危険。そのためセッションにより安全に情報を保持する。

要するにユーザーの情報を保存しておく機能。

**ただし、クッキーはセッションIDの保管場所として利用すべきで、それ以外のデータをクッキーに保存しない方が良い。（セキュリティ的に。ログイン情報の保存は別。）**

##セッション
>コンピュータネットワークでは、接続を確立してから切断するまでの一連の通信のこと。

セッションについてもうちょい詳しく↓↓
>・Cookieを使用した一連の操作のこと。 Cookie によるセッションIDの管理が行われる。
・WebサーバはCookieを受け取ると格納されたセッションIDを元に、メモリ上にあるログイン状態を復元する。
・セッションIDによるやりとりのおかげで安全性が高い。
・セッションはブラウザを閉じたら削除される

##キャッシュ
>キャッシュとは
キャッシュとは、閲覧したWeb ページの情報を一時的に保存する機能です。
キャッシュデータを保存しておくと、2回目に同じWebページに訪問したときに表示するスピードが上がりより閲覧しやすくなります。

キャッシュについてもうちょい詳しく↓

>閲覧ページの情報(キャッシュ)を保存することにより、再度閲覧したページにアクセスする際のページの読み込みスピードを早める仕組みのこと。
セッションにより情報を管理しているため、ブラウザバックや「戻るボタン」により一つ前の状態に戻れていまう。ショッピングサイトなら、注文後一つ前に戻ると注文前の状態になり、再注文できてしまう。
誤動作しないようにキャッシュを無効化するなどして対策をする必要がある。

要はWebサイトのデータを保存する機能。
WordPressとかでCSSを変更しても反映されないのはキャッシュによってWebサイトのデータ（cssファイル）が保存されているからだよ。たぶん。

##セッションIDとセッション管理
セッションIDとは、Webアプリケーションなどで、通信中の利用者を識別して行動を捕捉し、利用者ごとに一貫したサービスを提供するために付与される固有の識別情報。そのような仕組みをセッション管理という。
https://qiita.com/hot_study_man/items/c7e081d51ec29272c326

##インターフェース
2つのモノのくっついている部分

##セッションハイジャック
第三者がセッションIDを悪用して成りすますこと。

##同一生成元ポリシー
JavaScriptによるサイトをまたがったアクセスを禁止するセキュリティ上の制限。
###同一生成元とは
以下の条件を満たしている物。
・URLのホストが一致している
・スキーム（プロトコル）が一致している
・ポート番号が一致している

##インジェクション系脆弱性
データの中に引用ふやデリ見たなどの「データの終端」を示すマークを混入させて、その後の文字列の構造を変化させる手法。
（SQLインジェクション,HTTPヘッダ・インジェクションなど）

##リテラル
>ソースコードの中に直接書きこんである文字とか数字とか

##WebRTC
>ウェブブラウザやモバイルアプリケーションにシンプルなAPI経由でリアルタイム通信（英語: real-time communication; RTC）を提供する自由かつオープンソースのプロジェクトである。

##PHPについて

###PHP_EOL
PHP_EOLは、実行環境のOSに対応する改行コードを出力する定数のこと。
`\n`ではなく、`PHP_EOL`を使う方が良い。
PHP_EOL の EOL は `End of line` の略で

##単語の読み方
###htmlspecialchars
エイチティーエムエルスペシャルチャーズ
###CSRF
シーサーフ
クロスサイトリクエストフォージェリの略称。
###Vue.js
ヴュージェイエス
###nginx
エンジンエックス
###Node.js
のーどじぇいえす


##参考サイト・書籍
・https://it-trend.jp/words/session#:~:text=%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A7%E3%81%AF%E3%80%81%E6%8E%A5%E7%B6%9A%E3%82%92,%E3%82%92%E6%8C%87%E3%81%99%E5%A0%B4%E5%90%88%E3%82%82%E3%81%82%E3%82%8B%E3%80%82

・[今さら聞けないIT用語：cookieって結局何？ 定義や使い方、有効／無効にする方法を解説！](https://data.wingarc.com/what-is-cookie-23546#:~:text=cookie%E3%81%AF%E2%80%9CWeb%E3%82%B5%E3%82%A4%E3%83%88%E5%88%A9%E7%94%A8,%E3%82%B9%E3%83%9E%E3%83%9B%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82)

・https://wa3.i-3-i.info/word11374.html

・体系的に学ぶ安全なWebアプリケーションの作り方