かきスタンプ

福岡でフリーランスの物流系のエンジニアやってます。

HTTPメッセージについて整理してみた

リクエストメッセージ(クライアント→サーバ)とレスポンスメッセージ(サーバ→クライアント)をまとめて「HTTPメッセージ」と呼びます。

HTTPメッセージの構成

f:id:kakisoft:20170616021318p:plain

リクエストメッセージ

(例)
f:id:kakisoft:20170616021346p:plain

1.
リクエストメッセージの「スタートライン」は、『リクエストライン』と呼ばれる。
メソッド(GET,PUT等)、リクエストURL、プロトコルバージョン(HTTP/1.1)より構成される。

2.
省略可。 各ヘッダは「名前:値」という構成をしている。
詳細は「HTTP ヘッダ」とかでググって下さい。

4.
省略可。 テキストのみでなく、バイナリも格納できる。

レスポンスメッセージ

(例)
f:id:kakisoft:20170616021359p:plain

1.
レスポンスメッセージの「スタートライン」は、『ステータスライン』と呼ばれる。
プロトコルバージョン(HTTP/1.1)、ステータスコード(200)、テキストフレーズ(OK)にて構成される。

2.
リクエストメッセージと同様

3.
リクエストに対し、サーバが返した内容。
図ではHTML。
 
 

ブラウザからの確認方法

chromeデベロッパーツール】
デベロッパーツール([F12]キー)にて確認できる。
  Network→Name→Headers
を選択。
f:id:kakisoft:20170616021414p:plain

Firefoxプラグイン「httpfox」】
ツール→アドオン より「httpfox」を検索し、インストール。
インストール後、
  表示→httpfox
にて確認。
f:id:kakisoft:20170616021425p:plain

FirefoxプラグインLive HTTP Headers」】
Live HTTP Headersより、インストール。 インストール後は、
  ツール→Live HTTP Headers
にて確認。
f:id:kakisoft:20170616021433p:plain

設定タブにて、「.css」や「.js」を対象外に出来るのが便利。

プロキシに弾かれてnpmが実行できない時の対処。

プロキシに弾かれてnpmが実行できない時の対処。

ターミナルより、以下を実行。

npm -g config set proxy http.proxy http://[ID:PASSWORD]@[プロキシサーバのURL]:[ポート番号]
npm -g config set https-proxy http.proxy http://[ID:PASSWORD]@[プロキシサーバのURL]:[ポート番号]
npm -g config set registry http://registry.npmjs.org/

内容確認は、以下のコマンド。

npm config list

installが実行できるようになる。

(例)
npm install -g less
npm install -g express

設定を解除する場合は以下を実行。

npm -g config rm proxy
npm -g config rm https-proxy
npm -g config rm registry

Linux:容量確認の方法と、dfとduの違い

Linuxにて容量を確認するコマンドに dfとduがあるけど、調べていくうちに混乱してきたんで整理。

以下、dfコマンドでの確認内容。
ファイルシステム毎の使用状況を表示)

df -hT

f:id:kakisoft:20170611083614p:plain

Windowsだと、「Cドライブの容量は?」といった考えになり、その考えをそのままLinuxに適用しようとすると、「/home の容量は?」といった感じになる。
 
けど、Linuxでは、ハードディスクを含めた全デバイスを /dev で扱い、そこにマウントする、と少し考え方が異なる。
具体的には、「実態としては /dev(図の Filesystem列) にあるけど、アクセス・確認する時はマウント先(/home など)」となる。(図の「Mounted on列」)*1
 
単純に、パーティションを切ったハードディスクの使用状況を見たい場合は、dfでいいと思う。

ただし、ファイル・ディレクトリ毎の状況が知りたい場合、マウント先にアクセスして調べる事になる。
その時に、duコマンド(ファイル毎のディスク使用状況を表示)を使用する。

du -h

*1:実態(/dev)への直接アクセスは不可)

Ubuntu:フリーズした時の対処

Ubuntuにて、フリーズした時の対処

  1. [Ctrl] + [Alt] + [F2]で、CUI操作に切り替え。
  2. ログイン
  3. topコマンドにて、過負荷のプロセスIDを確認
  4. kill -9 <PID>で、プロセスを終了させる
  5. [Ctrl] + [Alt] + [F7] でGUI操作に戻る。

上記で反応が無い場合、もしくはプロセスをKill出来なかった場合、再起動。

[Alt] + [PrintScreen]を押しながら、
R + S + E + I + U + B と入力。

Raising Skinny Elephants Is Utterly Boring(やせこけた象を立ち上がらせるのは、本当にうんざりだ。)」と覚えるのだそうな。
自分は日本人ゆえ、覚えづらかったので、以下のように覚えた。

ReSEt(リセット)行(I)くぜ。UBntu。

また、以下のコマンドで、Windowsで言うタスクマネージャのような画面を表示できる。

gnome-system-monitor

Git:プロキシに弾かれてGitHubから cloneできない時の対処

プロキシに弾かれてGitHubから cloneできない時の対処。
 
ターミナルより、以下を実行。

git config --global http.proxy http://[ID:PASSWORD]@[プロキシサーバのURL]:[ポート番号]
git config --global https.proxy http://[ID:PASSWORD]@[プロキシサーバのURL]:[ポート番号]
git config --global url."https://".insteadOf git://

内容確認は以下のコマンド。

git config --list

プロキシの設定が pac(プロキシ自動設定ファイル)の場合、そのURLをブラウザに入力したら確認できる事もあります。
その内容から、プロキシサーバのURL(外部接続用)を解読しましょう。
一旦、PowerShell等を使い、テキストファイルに落としたりするのもいいかと思います。

PowerShell 入力例)

curl http://hoge/proxy.pac -Method Get -ContentType 'application/json;charset=utf8' -Outfile "C:\tmp/proxypac.js"

設定を解除する場合は以下を実行。

git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset url."https://".insteadOf git://

Ubuntu向け:Visual Studio Code の C# 実行環境

1.
公式サイトより、Ubuntu向けのインストーラを選択。

2.
コンソールにてインストール(参考サイト

sudo dpkg -i <file>.deb
sudo apt-get install -f 

 
3.
/etc/apt/sources.list.d/dotnetdev.list
を編集。(無ければ新規作成)

以下の内容を追記。(参考サイト
Ubuntu 14.04】

deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main

Ubuntu 16.04】

deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main

Ubuntu 16.10】

deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ yakkety main

現在のバージョンは cat /etc/lsb-release で確認可。
 
その後、以下を実行。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-dev-1.0.4

 
4.
コンソールにて code と入力すると、Visual Studio Codeが起動する。

適当なフォルダを作成する。
その後、Visual Studio Codeにて、ファイル→フォルダを開く→(作成したフォルダ)を選択する。
   
5.
[Ctrl]+[Shift]+@ で、ターミナルを起動し、以下を実行。

dotnet new console
※console以外では、mvcやwebapi等が指定可。  

以下のコマンドで実行可。

dotnet run

 
デバッグ機能より、F5でも実行可能です。  
 
参考にした動画

Linux:マイナーディストリをいくつか試した感想

見た目が良さげな Linuxディストリを、ASUSのE200Hに入れて遊んでみた感想です。
 
elementary OS
見た目のデザインは素敵。
軽量で最低限の機能しか備えていないため、色々手を加えないと、常用のPCとして使用する分には辛い。
色々手を加えていくうちに、どんどん動作が不安定になってきたので、別のを使うことにした。
 
 
Voyager
BIOS画面にて、どんなキーを押しても、何故かシャットダウンするという謎の現象に悩まされる。USB接続したキーボードだと問題なし。何故だ。
ちなみに、他のジャンクPCにブチ込んだ場合は、この現象は起こらなかった。むぅ。
 
 
Pantheon(KLUE 2.0)
日本人が作ったディストリだけあって、日本人が使う分には素敵なディストリだと思う。萌え系壁紙がデフォルトで多数用意されている。
自分の場合、サウンド絡みが上手くいかず、ごちゃごちゃ試しているうちに、動きが悪くなってきた。
何か調べようにも、マイナーディストリの宿命か、必要な情報をネットから探すのが難しく、解決は困難を極める。
Debian系だから、その辺の情報探しとけばいいっしょ。」と甘く見ていた・・
 
 
Zorin OS
すげえ重い。
そして外観がWindowsっぽい。すぐに飽きた。
 


 
…という経緯を経て、結局、Ubuntuがいいよね。という結論に落ち着きました。
が、マイナーディストリは不安定なものも多いうえ、行き詰まった時に情報が探しづらいので、やっぱり広く使われている物を選んだ方がいいかと思います。
 
上記では特定のディストリについて、「不安定」とか「重い」とか妙な現象に悩まされたとかいう表現を使用していますが、あくまで自分の環境ではそうだった、というだけで、全部がそうなる訳では無いと思います。
 
isoイメージファイルについては、主にライブCDの部屋様を利用させてもらいました。
たいてい bit数が書いてますが、たまに「i3861」等の明記されていないイメージファイルもありますので、使う前に調べておいた方がいいです。


  1. インテル系32bit