IT-LIFEブログ

主にIT系のことや時事ネタや、たまに雑記

【Apache】Raspberry pi 3でWebサーバを構築する方法【ラズパイ】

https://cdn-ssl-devio-img.classmethod.jp/wp-content/uploads/2016/10/Apache.png

 

ラズパイ買って何しよう?

Webサーバーでも立ち上げるか!と思っている方へ。

そのためにはApacheを入れなければなりません。

その方法は以下のコマンドをターミナルで入力するだけ。

sudo apt-get install apache2

 

念のため本当に入っているか確認するためにバージョンもみておきましょう。

apache2 -v

バージョンの情報が出力されて入れば完了です。

次にChromeなどのブラウザを立ち上げて、URL欄に

http://localhost

と入力してみてください。

 

It works!

が出てきたら勝ちです。

 

htmlファイルの場所は以下の場所にあります。

/var/www/html/index.htm

ここにあるindex.htmlを編集し、http://localhostと入力するとその編集されたhtmlに対する出力が表示されるはずです。

 

以上が、ApacheでWebサーバー化する方法でした〜!

参考になれば幸いです!

【Java】サーブレットで訪問回数カウントプログラムを作ってみた!

https://c.s-microsoft.com/en-ie/CMSImages/tools-for-java-1.png?version=4bd8ce88-1f2d-4890-c7b3-b1218e0fde2e


こんにちは、あつかんです。
最近、javaを猛烈に勉強していたので習った知識をブログで共有しておこうと思います。
今回は、Webページを訪問した時によく目にする訪問回数をカウントするプログラムを作成してみました!

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/CounterServlet")
public class CounterServlet extends HttpServlet{
	private static final long serialVersionUID = 1L;

	public void init(ServletConfig config) throws ServletException{
		super.init(config);
		Integer count = 0;
		ServletContext application = config.getServletContext();
		application.setAttribute("count", count);
		System.out.println("ini()が実行されました");
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		ServletContext application = this.getServletContext();
		Integer count = (Integer)application.getAttribute("count");
		count++;
		application.setAttribute("count", count);

		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<head>");
		out.println("<title>訪問回数を表示</title>");
		out.println("</head>");
		out.println("<body>");
		out.println("<p>訪問回数:" + count + "</p>");
		out.println("<a href=\"/example/CounterServlet\">更新</a>");
		out.println("</body>");
		out.println("</html>");

	}

	public void destroy() {
		System.out.println("destroy()が実行されました");
	}

}


まずinitメソッドから始まり、ここではcount=0の値を
application.setAttribute("count", count);
を使用してcount変数に入っている値0を"count"にアプリケーションスコープとして保存しています。
次にdoGetメソッドが実行されます。
application.getAttribute("count");
で"count"に入っている値を取り出して、その値に+1をしています。
そのあとに
application.setAttribute("count", count);
でcount変数に入っている値を"count"にアプリケーションスコープとして保存しています。
そして、ページが更新されるとアプリケーションスコープに入っている"count"の中身を
application.getAttribute("count");
で取り出します。
更新されるとinitメソッドの特性(1回目しか実行されない特性)により、initメソッドは処理されずにdoGetメソッドからプログラムが始まります。
つまり更新されるたびに1が足されていくため、訪問回数がカウントできるわけですね!


プログラムをコピペして、Tomcatサーバーで実行してみると動くと思います!
わからないことがありましたら質問受付ます!
ではでは〜

公開鍵暗号方式と共通鍵暗号方式の分かりやすい説明

この記事では公開鍵暗号方式共通鍵暗号方式について、わかりやすく説明していきます。

そもそもなぜそのような技術が必要かというと、メールなどを送る際にメールの中身を見る「盗聴」やメールの内容を第三者に変えられてしまう「改ざん」や「なりすまし」などを防止するためです。

公開鍵暗号方式共通鍵暗号方式がないと、「盗聴」「改ざん」「なりすまし」をいとも簡単に行なえていしまうので、現代社会において必須な技術になっています。

たとえば、最近話題の仮想通貨には公開鍵暗号方式が使われています。

 

それでは、まずは先に共通鍵暗号方式について説明していきます!

 

 

 

共通鍵暗号方式

共通鍵暗号方式は以下の図のような流れで行われています。

f:id:nok-0930-ss:20180305152819p:plain

このように、送り手側と受け手側であらかじめ秘密鍵を共有します。

そして、送り手側は秘密鍵で暗号化し受け手側は同じ秘密鍵で復号化します。

つまりこの方式は双方とも同じ鍵を用いるということが特徴です。

しかし問題点として、そもそも秘密鍵はどうやって安全に受け渡せばよいのか?という問題もあったります。

 

 

公開鍵暗号方式

共通鍵暗号方式は、「お互い同じ鍵を共有する」ので通信相手の数が増えるとその分だけ秘密鍵も増えてしまいます。

例えば以下の図のような感じ。

f:id:nok-0930-ss:20180305153635p:plain

すると鍵の管理が大変になりますね。。。

そこで、鍵の管理を簡単にするために公開鍵暗号方式というものが出てきました。

この方式は暗号化に使う鍵と復号化に使う鍵が別物になっています。

公開鍵暗号方式の特徴を以下の図でまとめます。

f:id:nok-0930-ss:20180305154536p:plain

 

公開鍵暗号方式では、受信者側が秘密鍵と公開鍵のペアを用意します。

そして、公開鍵を世界中に配布して「自分に送るときは、私の公開鍵で暗号化してください」とします。

つまり、以下の図のような感じ。

f:id:nok-0930-ss:20180305154842p:plain

受け手の公開鍵で暗号化されたデータは、受け手の秘密鍵でしか復号できないので公開鍵をいくらばらまいても、公開鍵だけでは暗号化しかできないので、データを「盗聴」されることはありません。

公開鍵暗号方式では、自分用の公開鍵と秘密鍵を以下の図のように1セット用意しておくだけで、複数の人とやり取りすることができるので、共通鍵暗号方式のように「鍵の数が増えて管理するのが大変だ!!」というようなことは起こりません。

f:id:nok-0930-ss:20180305155610p:plain

 ただし、共通鍵暗号方式に比べて、公開鍵暗号方式は暗号化や復号に処理時間がかかるそうなので、利用形態に応じて使い分ける必要があります。

 

まとめ

共通鍵暗号方式は秘密鍵のみで暗号化と復号をする。

公開鍵暗号方式は公開鍵で暗号化、秘密鍵で復号化をする。

 

以上です!最後まで読んでくれてありがとうございました!

 

OSI基本参照モデルの装置まとめ

この記事では初心者向けにOSI参照モデルの説明をしていきます。

なるべくわかりやすく書いていきます!

ちなみにこの本を参考にして書きました。

キタミ式イラストIT塾 応用情報技術者 平成30年度 (情報処理技術者試験)

とても分かりやすい本なのでオススメです。

 

それではいきます。

 

OSI参照モデルとは

 

パソコンが他のパソコンと通信するためには通信機器が必要です。

OSI参照モデルとは、その通信をする際に必要な通信機器の機能を第1層から第7層までに分割したモデルのことです。

なぜこのようのなモデルが必要かというと、全ての端末で共通する通信のルール(規格)を定義し、それに沿った通信が行われれば端末の仕様が異なっていても問題なく通信が行えるようにしたいためです。

 

このモデルは国際標準化機構(ISO)によって定義されました。

 

第1層から第7層までの具体的な中身を見ていきましょう!

 

f:id:nok-0930-ss:20180224002317p:plain

 

こんなのを一気にみせられても大変ですよね 。

それでは、各層にある各装置はどんなことをやっているのかを図を交えて説明をしていきます!

 

第1層(物理層)

第1層にはNIC、リピータ、LANケーブルなどがあります。

それでは上記の三つを紹介していきます!

NICについて

まずはNIC(Network Interface Card)について。

NICの役割は”データ”を”電気信号”に変換してケーブル上に流すこと、受け取ることです。

具体的には以下の図のような感じです!

 

f:id:nok-0930-ss:20180224003700p:plain

要するに、コンピュータがネットワークでやりとりしようと思ったら、欠かすことのできない部品がNICというわけです。

NICは通常、パソコンの中に入っています。

 

リピータ

次はリピータについて。

リピータは流れる電気信号を増幅します。

なぜ、増幅しなければならないかというと、以下の図のようにLANケーブルが長くなるとそこを流れる信号が歪んでしまう場合があります。

f:id:nok-0930-ss:20180224010506p:plain

そのため、受取手のパソコンさんはどんな信号が送られているのか理解することがむず開始です。そこで中間地点に信号を増幅するためのリピータを介入させます。

f:id:nok-0930-ss:20180224010610p:plain

すると、画像のように減衰する前に信号を増幅(整形)して再送出してくれるので信号の歪みを解消することができます。

 

LANケーブル

LANケーブルは、イーサネットで使用する配線用のケーブルのことで、主にコンピュータとその周辺機器を接続するためのケーブル。

                                                    f:id:nok-0930-ss:20180224011646p:plain

ちなみにイーサネットとは簡単に言えば、コンピュータネットワークの規格のひとつで、世界中のオフィスや家庭で一般的に使用されているLAN(Local Area Network)で最も使用されている技術規格です。

 

以上が、第1層(物理層)でした。

物理的にネットワークをどう繋ぐかは上記の装置を使って決めていきます。

 

第2層(データリンク層

この層は、一つのネットワーク媒体に接続され複数のコンピュータの間でデータをどのように伝送するのかの機能が提供されています。

データリンク層には、ブリッジという装置があります。

それではこの装置の説明をしていきます。

ブリッジ

ブリッジは以下の図のようなことをしています。

f:id:nok-0930-ss:20180224152812p:plain

流れてきたパケットにはMACアドレスという次の送付先を示す情報があるため、ブリッジはその情報をみて異なる送付先にパケットが流れ込まないように制御します。

ちなみに、MACアドレスIPアドレスの違いを明確に説明しとくと、IPアドレスは最終的な送付先を示していて、MACアドレスは次の送付先を示しています。

ブリッジによるパケットの交通整理を行うことによって、パケットの衝突が起きにくくなり回線の利用効率が下がることを回避できます。

 

スイッチングハブ

ブリッジを複数束ねたもの。

図で表すと以下のような感じ。

f:id:nok-0930-ss:20180224155151p:plain

 

 

 

第3層(ネットワーク層

この層は、異なるネットワーク同士をどのように中継するかの役割があります。

その中継機能を提供する装置がルータです。

ルータ

ブリッジが行う転送はあくまでもMACアドレスが確認できる範囲のみで有効なので、外部のネットワーク宛への転送を行うことはできません。

外部へパケットを転送するためにはルータが必要です。

以下の図のような役割をしています。

f:id:nok-0930-ss:20180224160531p:plain

IPアドレスは"どのネットワークに属する何番目のコンピュータか"という情報なのでこれを確認することで、外部ネットワークへ送付することが可能です。

 

第4層以上

第4層以上にはゲートウェイという装置があります。

ゲートウェイを簡単に説明すると、ネットワークの翻訳家さんみたいなものです。

難しく言うと、ネットワーク双方で使っているプロトコルの差異をなくす役割をもっています。

そのようなプロトコルの差異はゲートウェイという装置を使って吸収します。

f:id:nok-0930-ss:20180224162816p:plain

例えば、携帯のメールとインターネットのメールは使用しているプロトコルが異なっているので通信できません。

そこでゲートウェイを使用すると以下のように変換することが可能なので、我々はなに不自由なく携帯とパソコン間でやり取りができるわけです。

f:id:nok-0930-ss:20180224164017p:plain

 

まとめ

今回はOSI参照モデルで使用される代表的な装置の機能を説明してきました。

次のブログでは、各層の具体的な内容やプロトコルについて説明していこうと思います。

滴滴出行とソフトバンクが日本のタクシー事業者向けサービスにおいて協業

↓プレスリリース

https://www.softbank.jp/corp/group/sbm/news/press/2018/20180209_01/

【2017】京成スカイライナーのCMの曲について!歌手は?曲名は?

こんにちは、あつかんです。

YouTubeを見ていたときに、以下の京成スカイライナーの広告が流れてきました。

 

 

その広告に流れている曲がとても素敵な曲で気になってしまったので調べて見ました。

歌手&曲名

歌手はたかはしほのかさんという方だそうです!

作詞もたかはしほのかさんがやっています!

f:id:nok-0930-ss:20171212163217p:plain

たかはしほのかさんはリーガルリリーというバンドでギター&ボーカルを担当しているそうです。

 

詳しいプロフィールはこちらから

www.regallily.com

 曲名は 「そらのむこう」 です。

 

ちなみに、作曲家はPa’s Lam Systemさん。

 

最後に

歌声が透き通ってて、なんども聞けちゃう曲でしたね!

これ売れると思うな〜

今後のご活躍に期待しましょう!

【Macユーザー必見】fnキーを押さずにファンクションキーを使用する方法

f:id:nok-0930-ss:20171207175736p:plain

こんにちは、あつかんです。

Macユーザーの方はファンクションキーを使用するとき、わざわざfnキーを押しながら使用していますか?

ファンクションキーを多様する人にとってはこれはわずらわしい操作ですよね。

 

そこで、今回はfnキーを押さなくてもファンクションキーを機能させる方法を紹介していこうと思います。

 

方法

まずは以下の画像のりんごマークをクリックしてください。

f:id:nok-0930-ss:20171207171634p:plain

次はシステム環境設定をクリック。

f:id:nok-0930-ss:20171207171758p:plain

こんな画面が開かれるので矢印のところをクリック

f:id:nok-0930-ss:20171207171925p:plain

 

以下の画面が現れるので、キーボードアイコンをクリック

f:id:nok-0930-ss:20171207172034p:plain

 

以下の画面の、"F1、F2などのキーを標準のファンクションキーとして使用"という欄にチェックを入れてください。

f:id:nok-0930-ss:20171207174636p:plain

 

以上です。

簡単でしたねw

 

これでfnキーを押しながらファンクションキーを押すという鬱陶しい作業から解放されます。

 

ここで、ファンクションキーに重複されている機能である音量調整ボタンや画面の明るさ調整ボタンはどうやって機能させればいいの?って疑問が発生します。

この場合は逆に、fnキーボタンを押しながらそのボタンを押すことによって解決できます。

 

お役に立てたなら幸いです。

では、あつかんでした〜