今日のお勉強。171207-HTTPの基本

HTTPの基本。171207

 

telnet、まずはヤフーで挑戦しました!

最初、telnetをする時はIPを入力しないと出力されないのかな?と思ってヤフーのIPを調べてました。

 

IPの調べ方は、

$ nslookup 【調べたいURL】

で、IPを調べることができるそうですね!

 

でも、そこまでしなくても、

$ telnet 【URL】 【繋げるポート番号】

でIP無くてもできました。

続けて

$ POST / HTTP/1.1

$ Host: www.yahoo.co.jp

と入力すると、情報やHTMLが表示されます。

 

ただ、GETやPOSTはさっさと入力しないと時間切れになるみたいですね

(^^;)

 

f:id:nashiko_chan:20171208013559p:plain

こんな感じで表示されました。

 

 

当ブログも出るかな?と思ってやってみました。

 

f:id:nashiko_chan:20171208013543p:plain

 

 当ブログは、はてなブログさんを使わせていただいておりますが、はてなブログさんのサーバーはnginxをご利用されてるそうですね!

 

Content-Lengthの意味があまりよくわからなくて、

 

1000と入力しても、50と入力しても、10と入力しても、htmlの長さがあまり変わらないのです。

 

調べるとメッセージ本文の長さを設定とのことで、1000と入力したら1000byte分のhtmlのコードの記述が表示されるのかと思ったのですが…。

う〜ん。

 

htmlの前の英数字もよくわかりませんが、webの様々な情報が見れるのは大変便利ですね。 

 

 

今日のお勉強。171204-HTTPの基本

HTTPの基本。171204

もいちどイチから! HTTP基礎訓練中 連載インデックス - @IT -

 

を読んでおりました。

 

 

セキュリティは難しそうというイメージがありましたが、身近なところからも気をつけなければならないということなのですね。

 

 

SQLインジェクション

DBと連動したサイトで、DB改ざんしたりなどの悪さをすること。

SQLインジェクションでデータベースを攻撃(!)してみよう | 丸ノ内テックブログ

 

 

セッション

クッキーと似てるイメージ。

セッションIDがあることによって、サーバー側が認識し、やりとりの無駄な手間を省ける。

だが、そのセッションIDを利用して個人情報を抜き取ったりなどの悪さをする人もいるらしい。

 

 

調べれば調べるほどセキュリティって怖いですね…!

 

 

 

今日のお勉強。171125-HTTPの基本

HTTPの基本。171125

前回nginxの学習した時、ちょっと難しかったため、HTTPの学習するとわかりやすい。というアドバイスをいただき、

HTTP入門

を読んで学習しておりました。

 

こちらから(ブラウザ)要求すると、webサーバーから返答してくれるというのが楽しかったです。

 

f:id:nashiko_chan:20171126001846p:plain

 

HTTP - 1.1。1.0と1.1ではちょっと違いがあるらしい(HTTP入門 - メゾット

 

server - nginxの、バージョン1.10.3(調べてみると、2017/1/31にリリースしたバージョンらしい)

 

Date - 2017/11/25(土)14:59:33(イギリス時間)

 

Content-Type - text/html。「コンテンツの種別を MIMEタイプで示します。コンテンツの内容がテキスト(HTML)形式であることを示します」(引用)らしいです。

MIME(マイム)とはインターネットを利用した電子メールで送受信するための通信規格(引用)らしいです。

 

Content-Length - コンテンツの長さをbyteで表示。半角英数字なので612文字ということでしょうか。

 

Last-Modified - エンティティ(本体)の最終更新日。2017/11/23(木)14:04:58(イギリス時間)

 

Connection - HTTPの持続時間。closeは持続時間完了してる。

コネクション管理

コネクション

 

ETag - エンティティタグ。キャッシュで効率化。初回アクセスにETagもらう。次アクセスした時にETagつけてリクエストする。転送量の負荷を削減させたりできるらしい。

HTTPヘッダチューニング Etag・Last-Modified | REDBOX Labo

事例に学ぶWebシステム開発のワンポイント(12):ブラウザキャッシュでパフォーマンス向上―負荷分散装置の落とし穴に注意− - @IT

 

Accept-Ranges - 要求において使用可能な単位をクライアントに伝えます(引用)byteという単位を使用してます。

 

 

 

 

 

今日のお勉強。171123-nginxの基本

nginxをdebianにインストール。171123

nomnel.net

 

# sudo apt-get install nginx

nginxをインストール

 

wget "http://nginx.org/keys/nginx_signing.key"

# sudo apt-key add nginx_signing.key

 

wgetコマンドはファイルをダウンロード。

apt-keyはキー管理コマンド。addで新しいキーを追加。

 

 

# sudo vi /etc/apt/sources.list

をviで開いて以下2行を追記。

 

deb http://nginx.org/packages/debian/ squeeze nginx

# deb-src http://nginx.org/packages/debian/ squeeze nginx

 

 

インストール

# sudo apt-get update

# sudo apt-get install nginx 

 

 

ブラウザにIPアドレス記述して表示すると…

f:id:nashiko_chan:20171124010557p:plain

成功!(^o^)/

 

 

次は…、

 

hir-aik.hatenablog.com

 

 

# sudo /etc/init.d/nginx start

と書くと、startコマンドで、サービス起動。

 

www.infraeye.com

 

 

/etc/init.d/nginx

ディレクトリに、nginxを起動させるらしい。

 

 

# telnet localhost 80

 

# GET / HTTP/1.0

 

と、最初は404エラーが出てきましたが、3回目で以下のように成功しました。なぜ。

 

f:id:nashiko_chan:20171124010900p:plain

 

hir-aik.hatenablog.com

 

を読むと、

 

「# root /usr/share/nginx/www;

とあるので、wwwディレクトリ以下にhtmlファイルを置けば良いことが分かる。」

 

と書いてありましたが、そのような行はありませんでした。

(?_?)

 

defaultのserverの中に

# root /var/www/html;

はありましたが。

 

 

オブジェクト指向は初めてですが、便利そうですね!

 

 

 

今日のお勉強。171120-nginxの基本

nginxの基本。171120

 nginx(エンジンエックスと読む)とは。

 

サーバーである。

webサーバー

リバースプロキシサーバー

メールプロキシサーバー

 

プロキシとは、代理という意味で、自分のPCに変わってアクセスしてくれるサーバー。

 

nginxはシングルプロセスで処理が軽く、大量のリクエストの処理向き。

 

 

プロセスとは、サーバーで実行されるタスク。仕事。

マルチプロセスは複数のプログラムを動かす。

シングルプロセスは一つずつ仕事をこなす。

 

イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編〜 - もろず blog

 

nginxについて | レンタルサーバー【エックスサーバー】

 

 

サーバーは他にも有名なapacheというものもある。

apacheはマルチプロセスだけど、大量のリクエストには向かない。

 

 

nginx

WebApplicationと連携するときには、プロキシサーバとして動作させる。

- PHP : PHP-FPMで動かし、FastCGI経由で動作させる

- Ruby : unicornで動かし、HTTPプロキシーとしてアクセスする。

引用:NginxとApache HTTP Serverの違いメモ - Qiita

 

 

 

 

 

今日のお勉強。171112-mysqlの基本

mysqlの基本。171112

php勉強してた時にmysqlも学んでたはずなのですがあまり覚えてなく、復習がてら手元にあるテキストにて学習しました。

.....インストールの段階で迷ってしまいましたが(^^;)

 

 最新のmysqlとは、どれを選べばいいのだろう?と思い、

 

apt-cache search mysql

 

と、サーチしてみたところ、色々出てきました…。

 

 

最新のやつどれだろう?どれを選べばいいのだろう?

 

と迷って時間かかり、mysql-serverというものをインストールしました。

 

MARIA DBというものですがこれで大丈夫なのかな…。MARIA DB有名ですけど…。 

 

 

ユーザー作成・データベース作成・テーブル作成

mysqlってどうやるのだろう。と調べてました。

 

# sudo mysql

 

と入力すると、mysqlモードに!

 

MariaDB のユーザーを作成する

 

を参考にし、

 

CREATE USER 【ユーザー名】@【ホスト名】 identified by 'パスワード';

 

で、なんとかユーザーを作成しました。

 

その後、

 

CREATE TABLE 【テーブル名】(

  isbn VARCHAR(20) PRIMARY KEY,  (20文字以内まで・主キー)

  price INTEGER  (整数)

);

 

と、テーブルを作成。

 

(isbn、priceは適当につけました。)

 

 

そして、データベース作成ですが、何度も何度もやってもできなくて、なんでだろう?ほんとどうしてだろう?と考えてたら、、、

 

ずっと「DATABASE」を「DATEBASE」と書いてしまってました。

綴りが一文字違う(涙)

 

 

なので、やっとCREATE DATABASE使ってデータベース作成できました!

 

CREATE DATABASE 【データベース名】;

 

 

...ただ、INSERT INTOで入れ直しましたが(汗)

 

 

 

USE 【データベース名】

 

でそのデータベースに入れることができます。

 

 

INSERT文

INSERT INTO テーブル名(isbn,price) VALUE('0001',2020);

(priceは整数だから''はいらないのかと思われます。)

 

 

 

久しぶりなので、復習という感じになりましたが、、、、思い出せるように頑張ります…!

 

 

 

 

 

今日のお勉強。171109-sslの基本

sslの基本。171109

SSLを学んでおりました。 

図解で学ぶネットワークの基礎:SSL編 - 図解で学ぶネットワークの基礎:SSL編:ITpro

暗号化とは複雑に感じました(^^;)

 

 

「よく分かる公開鍵認証」~初心者でもよくわかる!VPSによるWebサーバー運用講座(2) | さくらのナレッジ

 

PKIと公開鍵暗号方式・共通鍵暗号方式・鍵長とは?|GMOグローバルサイン【公式】

 

公開鍵暗号

鍵の管理が容易。

誰でも取得可能。

暗号化・復号の処理が遅い。

ショッピングサイトや広く情報を収集するサイトなどで幅広く利用されてる。

 

何かのサイトに登録する時、仮登録メールを開いて、登録完了するのはこうゆう仕組みを利用されてるのでしょうか。

 

 

共通鍵暗号

暗号化・復号の処理が早い。

送受信する相手が少ない場合は、鍵の管理は簡単。

鍵は非公開で安心して送受信できる。

 

鍵が公開されていないため、安心して通信することができる。

送受信する相手や通信の頻度が少ない場合のやりとりに向いてる。

ただ、相手が増えるとその分鍵を用意する必要があり、管理が大変。

 

 

TCPとは 

TCP/IP - TCPとは - TCPヘッダ

http://www.picfun.com/lan19a.html

TCP/IPプロトコルとは パソコン初心者講座

トランスポート層。 

 

データのやり取りを色んな層でやりとりしてる。

イーサネットの層は直接繋がれたネットワークの中で。

IPの層はルーターIPアドレスで判断。接続されてるネットワーク同士の通信のやりとり。

トランスポート層プロトコル違うネットワーク同士と接続。

アプリケーション層はHTTP

 

信頼度の高いデータの転送。通信プロトコル

プロトコルとは決まりごと。規則。

通信の決まりごと。通信の規則。

 

 

 

イーサネット

イーサネットとは? | パソコン用語『○○とは?』

ネットワークの通信方法の名前。

 

 

 

 ITって、ネットワークって、難しいですねー。