web知識

こんにちは！
昔のノートを見直していたら、専門用語がびっしり！
復習がてら、まとめてみました！
間違っていたら教えていただけると幸いです。。。！
#基礎知識
#### ★1.HTTPゲットとポストの違い

   -  GET - ~~サーバーからデータを取得時に使用~~ 
     <br>→ **<font color="red"> 何か情報を検索したり取得するためのメソッド</font>** <br> またURLの後ろに送りたい情報が追加され見える
   -  POST - ~~データを変更したい場合に使用~~<br>→<font color="red">**サーバに値を送信するメソッド「値を見えないところにくっつけてサーバに送る」**</font>
 <br>HTTPリクエストのメッセージボディに情報が含まれている
   - 【参考記事】<br>https://qiita.com/ryuuuuuuuuuu/items/94f75183bd700a8b4c15

#### ★2.配列について
 - 配列 - ~~複数の情報を入れておく箱~~<br>→** <font color="red">複数のデータをまとめて、1つのリストにした構造or1つの変数に複数の値を入れれる器</font> **
 - 【参考記事】<br>https://26gram.com/what-is-array

#### ★3.CookieとSessionについて
 - **Cookie** - ~~ブラウザ側にCookieIDを発行して、後日同じ画面に訪問した時に、サーバー通信を早くできる~~<br>
 →**<font color="red">ブラウザ上に保存される小さなファイルのことでユーザー情報を保存する。</font>**<br>
      - **1st party Cookie & 3rd party Cookie の違い**
            - **<font color="red">主な違いは、Cookieの発行元が違う</font>**
             - **1st party Cookie** - 実際訪問しているwebサイトのドメインから発行<br>（ブラウザが違うと過去の情報を呼び出せない）
             - **3rd party Cookie** - 訪問しているサイトのドメイン以外から発行されるCookie
          
  - **Session** - ~~サーバー側にSessionIDを発行し、ある特定のページはSessionIDがなければ入れなくする~~
 <br>→<font color="red">**アクセスの開始から終了までの一連の通信のことで<br>サーバー上の一時ディレクトリに保存されたデータのことです。</font>**<br>
        - webサーバーからSessionIDが発行されて、CookieとしてSessionIDを保存する。<br>クライアントからサーバーにリクエスト時にSessionIDを元にデータ取り出し、誰がアクセスしたのか認識する
        -  例<br>
セッションは接続中のユーザーの活動に関連する情報を一時的に保存しています。
例えば、ショッピングサイトを閲覧していて、ある商品をショッピングカートに入れた後、Webサイトを離れ、再度戻ってきたときに、ショッピングカートに商品が入ったままになっているのは、セッションによって情報を保存していたからです。

 - 【参考記事】<br>https://ssaits.jp/promapedia/technology/cookie-session-cache.html#toc_id_3_1<br>https://it.becrazy.jp/article/whats-session
 
- #### ★4.コンポーザーとは
 - Composer - ~~ライブラリの塊~~<br>→**<font color="red">PHPのパッケージ管理システム</font>**
     - パッケージ管理システムとは？ 
     <br> ソフトごとにverがあり、必要に応じてヴァージョンアップしてくれる/このバージョンのソフトやライブラリはあのバージョンのソフトと互換性があるからそれをインストールしよう
 -  【参考記事】<br>https://note.com/r_takao/n/nf3f2e317f4a1
 
#### 5.Dockerとは
 - Docker - 仮想化コンテナ技術のこと。DockerHubでImageを落とせ誰でも簡単に仮装環境を整えれる<br>

#### ★6.npmとモジュールとは
 - npm - **<font color="red">node.jsのパッケージ管理システム</font>**
     - node.jsとは？
         -  **<font color="red">Node.jsはサーバサイドで動くJavaScriptのこと</font>**
 - module -  **<font color="red">部分的なプログラムのことで、間単に追加・削除できる</font>**

  - 【参考記事】<br>https://exture-ri.com/2019/10/23/%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%80%81%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%80%81%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%A3%E3%81%A6%E4%BD%95/#:~:text=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%EF%BC%88Module%EF%BC%89%E3%83%BB%E3%83%BB%E3%83%BB,%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%81%BE%E3%81%A8%E3%82%81%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%82

#### ★7.ガルブとは
 - **<font color="red">node.jsのWebサイト構築に必要な処理をタスクとして<br>自動化してくれるプログラム(タスクランナー。3)</font>**
 - 【参考記事】<br> https://digitalidentity.co.jp/blog/creative/javascript-nodejs.html

#### 8.ORM、ActiveRecord
 - ORM - <font color="red">**アプリのモデルと、DBのテーブルをマッピングさせること(laravelだとeloquent)**</font>
     - SQLを書かなくてもDB操作ができる(Controllerに記述してる $user = Auth::user()的な )
 - 【参考記事】<br>https://note.com/kazunori_kuroco/n/na2ce4e208137
 - ActiveRecord - **<font color="red">「RubyとSQLの翻訳機」</font>**
 - 【参考記事】<br>https://qiita.com/ryokky59/items/a1d0b4e86bacbd7ef6e8

#### 9.条件を指定する上で、〜以上の値を取得するときに使う語句はわかる？
 - Having
     - Whereとの違い
          - WHERE・・・グループ化をされる前の段階、つまり元々のデータでの抽出条件を指定できる
          - HAVING・・・グループ化した後の情報での、抽出条件を指定できる。

 - 【参考記事】<br>https://www.sejuku.net/blog/73003
 

#### 10.ウェブとは
 -  ~~蜘蛛の巣ようもの~~<br>→**<font color="red">インターネットを利用して情報を発信したり閲覧したりするための仕組みのこと**</font>

#### 11.インターネットとは
 - ~~webを繋ぐもの~~<br>→**<font color="red">TCP/IPプロトコルを使う網目状の繋がりや、世界中のコンピュータを通信させるネットワーク**</font>
      -  ネットワークとは
          -  複数のコンピューターをつなげる
      -  TCP/IPとは
          -  4層に分かれてるプロトコルのこと 
 - 【参考記事】<br>https://www.web-knowledge-info.com/wp/web_basic_knowledge3/#:~:text=TCP%2FIP%E3%81%A8%E3%81%AFTransmission,%E3%81%A7%E8%A1%8C%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

#### 12.httpとhttpsの違いは
 - ~~違いは、セキュリテイがしっかりしてるかしていないか。~~<br>→<font color="red">**通信が暗号化されているかどうか**</font>
    - そもそもhttpとは 
           - Webサーバーと、Webページ閲覧者の通信ルール（プロトコル）
    - httpsとは
           - HTTP over SSL/TLSの略（安全！）
 - 【参考記事】<br>https://ms.repica.jp/column/20191227_http_https/#:~:text=http%E3%81%A8https%E3%81%AE%E9%81%95%E3%81%84%E3%81%AF%E3%80%81%E3%80%8C%E9%80%9A%E4%BF%A1%E3%81%8C%E6%9A%97%E5%8F%B7%E5%8C%96,%E3%81%A6%E9%80%9A%E4%BF%A1%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

#### 14.SQLの実行計画は分かるか？
 - <font color="red">**どのようにテーブルに対して検索を行なうかが書かれた、SQLの実行手順書**</font> 
 - 【参考記事】<br> https://qiita.com/NagaokaKenichi/items/5b6eb9887f88046a594d

#### ★15.Ajaxはサーバーとどのように通信させてる？<br>[こっちの記事の方が、わかりやすいかも！クリックしてください！](https://qiita.com/heyjun33/items/215f73db524b01bb4e69)
 - 前提
      - Ajaxとは
           -  JavaScriptからWebサーバーに通信してもらう
      - XMLHttpRequest
           - クライアントとサーバーの間でデータを転送するための機能をクライアント側で提供するAPI
      - JavaScript
          - JavaScriptを使わないと、非同期通信できない 
      - DOM(Document Object Model)
          - HTMLや、XMLドキュメントのためのAPIで、Webページをスクリプトやプログラミング言語と繋ぐような機能。HTML・XML上でどの要素変更するか指定する。
      - XML
      - Json (JavaScript Object Notation)
          - 軽量のデータ交換フォーマット、人間にとって読み書きが用意で、マシンにとっても[パース](https://www.protosolution.co.jp/glossary/web/ha/pa-su.html#:~:text=%E3%83%91%E3%83%BC%E3%82%B9%E3%81%A8%E3%81%AF%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE,%E3%80%8C%E3%83%91%E3%83%BC%E3%82%B5%2F%E3%83%91%E3%83%BC%E3%82%B6%E3%80%8D%E3%81%A8%E3%81%84%E3%81%86%E3%80%82)や生成を行える 
   - 本題のどうやって通信させてる？
     - 1)webブラウザから、イベント発生（ボタンクリック）
     - 2)JS+XMLHttpRequestでサーバーに対して、リクエストを送信（非同期通信）し、欲しい情報、帰ってくるレスポンスの情報をしてリクエスト
     - 3)サーバーで受け取った情報処理（クライアントは操作し続けれる）
     - 4)処理結果をJsonやXMLで応答して、更新のあった部分だけ変更する。
     - めっちゃ分かりやすいけど、むずい！笑
 
   - 【参考記事】<br>https://qiita.com/hisamura333/items/e3ea6ae549eb09b7efb<br>http://pikawaka.com/word/ajax
   
#### 16.SSL (Secure Socket Layer)*言葉のみ使われてる
 - Webサイトとそのサイトを閲覧しているユーザとのやり取り（通信）を暗号化するための仕組みです。
     -  通信の暗号化（盗聴を防ぐ）
     -  サーバーの正当性の確認（なりすまし防ぎ）
     -  メッセージ認証（改竄を防ぐ）
 - **TLS (Transport Layer Security)**
     - SLTとほぼ同じ仕組みで、インターネット技術の標準化を推進する組織に管理が移され名前が変わった。 
 - 【参考記事】<br>https://ssl.sakura.ad.jp/column/ssl/
 
#### 17.php.iniとは
 -  phpを動かすための、設定ファイル。
 -  【参考記事】<br>https://wa3.i-3-i.info/word13611.html

#### 18.SMTPとは
  - メール送信の仕組み  (STMPサーバーまで送る)

#### 19.popとは
 - メールの送受信の仕組み（メールサーバーに保存されたメールをダウンロードする）
 - 【参考記事】<br> https://time-space.kddi.com/ict-keywords/kaisetsu/20170824/2081<br>

#### 20.Guzzleとは
 - HTTPクライアントライブラリで、**RestfulWebサービスクライアント**を作るためのフレームワーク <br>
GuzzleはHTTPクライアントのパッケージで、一言で説明すると「高性能なcurl関数の**ラッパー**」
 - 【参考記事】<br>https://qiita.com/mapyo/items/5307e1b36437600c2c34
 <br>https://technoledge.net/composer-guzzle/

#### 21.RESTfulWebサービスとは
  - webアプリケーションの設計規約みたいなもの
  - 【参考記事】<br>https://www.webprofessional.jp/what-does-restful-really-mean/ 

#### 22.ラッパーとは
  - 直接扱えないモジュールに対して、中間に立って扱える様にしたり、機能を加えたりしてくれる<br>
  - 【参考記事】<br>  https://qiita.com/dsudo/items/51ca822169ef9f8b9bc3 

#### 23.スクレイピングとは
 - 大量のデータを抽出して使いやすくしてくれること≒クローリング（収集のみ）
 - 【参考記事】<br>https://data.wingarc.com/scraping-27053 

#### 24.apachとNginxの違い
  - 処理速度や機能が違う（Nginxが優位）
  - 【参考記事】<br>https://www.kagoya.jp/howto/rentalserver/nginx/ 

#### 25.スクラム
  - プロダクトへの要望を優先順位ごとに並べかえて、その順に機能を作る
  - 【参考記事】<br>https://geechs-job.com/tips/details/30#:~:text=%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E9%96%8B%E7%99%BA%E3%81%AB%E3%81%AF%E3%80%81%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2,%E8%A6%81%E7%B4%A0%E3%82%92%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

#### 26.VR/AR/MRとは
  -  VR(Virtual Reality) - 仮想現実
  -  AR(Augmented Reality) - 拡張現実 - 現実世界に仮想の世界を重ねる
  -  MR(Mixed Reality) - 複合現実 - CP上の世界と現実を重ねる
  -  【参考記事】<br>https://flets-w.com/user/point-otoku/knowledge/other/otherl42.html

#### 27.DOMとは
  - Document Object Moduleの略で、プログラムからHTMLやXMLの内容にアクセス時にDOMを利用<br>（HTMLやXMLを扱うためのAPI） 
  - 【参考記事】<br>https://eng-entrance.com/what-is-dom
 
#### 28.デーモンとは
  - いつでも何かに備えて準備してくれてる常駐プログラム
  - 【参考記事】<br>https://wa3.i-3-i.info/word11000.html
 
#### 29.scratch とは(Docker)
  - Docker が規定する最小イメージ scratch は、コンテナを構築するベース・イメージとして利用できます。 scratch を利用すると「イメージ」は、``Dockerfile` `内の次に実行したいコマンドの構築プロセスに対して、最初のファイルシステムレイヤとなるように指示を出します。
 - 【参考記事】<br>http://docs.docker.jp/engine/userguide/eng-image/baseimages.html

#### 30.バイナリとは
  - 電気のONとOFF、それを0と1で表現（2進数で表現される何か）
  - バイナリデータとは
       - コンピュータが扱うデータ（バイナリデータ）
 - 【参考記事】<br>https://wa3.i-3-i.info/word14226.html

#### 31.キャッシュとは
   -  よく使うデータへのアクセスを速くするために、より高速な記憶装置に閲覧したページ情報を、一時的に保存する仕組みのこと。
 - 【参考記事】<br>https://ssaits.jp/promapedia/technology/cookie-session-cache.html#toc_id_3_1

#### 32.RDBMSは何を使っていますか
   - MySQLです！
   - **そもそもRDBMS(Relational DataBase Management System)とは？**
      - SQLを利用してリレーショナルデータベースを管理するシステム
      - 主要製品 - Oracle Database/SQL Server/MySQL/PostgreSQL
   - **データーベースの種類**
      - 階層型
          - ルートが限定的で処理が早い・柔軟性が欠ける
      - ネットワーク型
          - 重複登録を避けれる・データ構造に依存 
      - リレーショナル型
          - 複雑なデータの扱いが容易・SQLで操作
   - RDBMSとNoSQLの違い
      - NoSQLはSQLを使わない
      - 主要製品 - HBase/MongoDB/Cassandra

#### 33.UnixとLinuxの違い
   - Unix - 企業が開発して、知的財産権が企業に属してる
     - 　安全性が高く、余計な機能がなく軽く、値段が安い 
   - Linux - オープンソースで無料
 
#### 34.Linuxディストリビューションとは？
   - Linuxの種類のこと 
        - debian( - UIがWindowsに似ている)-[ubuntu]<br>slackware(安定性やセキュリティ・高速である点/玄人向け)-[SuSE]<br>RedHat(商業寄り、または企業寄りのイメージが強い)-[CentOS]
   - 【参考記事】<br>https://agency-star.co.jp/column/linux-distribution