GoLang ブロックチェーン

10分GO 15日目

IT業界に身を置いてから久しいですが、お恥ずしながら、いろんな技術をふわふわとしか覚えていなかったのするので、基礎からやり直しが必要だな〜ということが多々あるです。

そしてアウトプットしていかないと忘れる。(この作業が意外にめんどっちかったりする)

 

 

単なるメモでかなりはしょってます。

URL

Uniform Resource Locator:統一資源位置指定子。ネットワーク上のリソースを表現。

scheme://host[:port#]/path/.../[?query-string][#anchor]

scheme プロトコルを指定(http、https、ftp)
host HTTPサーバーのIP か ドメイン
port# デフォルト80
path リソースまでのパス
query-string HTTPサーバーへ送るデータ
fragment (anchor) フラグメント(アンカー)主となる内容と代替え表現などを指定。サーバーからきた情報をクライアントが処理するときに使用される

 

HTTP

HTTPサーバーがブラウザから送られてきた2つのリクエストが同じものかどうかは確認できない(ステートレス)。この問題を解決するのにCookie機構を使い接続を持続する。

 

HTTPリクエストパケット(クライアント情報)

Requestパケットは3つの部分からなる。

  • Request line
  • Request header(メッセージヘッダ)
  • 空行(CR+LF)
  • body(メッセージボディ)

header と bodyの間には空行がある。

リクエストメッセージ(クライアント→サーバー)

リクエストを送る

$ curl -v -s https://google.com

 

リクエストライン(1行目)リクエストヘッダ(2行目から)

> GET / HTTP/2
> Host: google.com
> User-Agent: curl/7.54.0
> Accept: */*
  • GET:リクエストメソッド
  • Host:サーバーのホスト名
  • User-Agent:curlコマンドで打ってるのでcurlってでてるけど、ブラウザからアクセスした場合はブラウザ情報が送られる
リクエストメソッド
POST Webサーバーにデータを送信する CREATE
GET リソースの取得/検索(Webサーバーにある指定したファイルの内容を要求する) READ
PUT Webサーバーにあるファイルを置き換える or 新規作成する UPDATE(CREATE)
DELETE 指定したファイルをWebサーバーから削除 DELETE

他に HEAD、OPTIONS、TRACE、CONNECT がある。

 

GETとPOSTの違い
  • GETリクエストはボディが空、POSTはボディがある
  • GETのデータはURLの最後におく、POSTはデータをHTTPパケットのBody部におく
  • GETのデータはサイズに制限がる

レスポンスメッセージ(サーバー情報)

< HTTP/2 200 
< server: nginx
< date: Sun, 24 Feb 2019 14:21:12 GMT
< content-type: text/html; charset=UTF-8
< vary: Accept-Encoding
  • 1行目:ステータス(バージョン、ステータスコード)
  • 2行目:Webサーバー
  • 3行目:サーバーが送信するデータの型

GO

GOが処理するWebサーバーのプロセス

 

 

  1. LISTEN SOCKETを作成し、指定したポートを監視
  2. LISTEN SOCKEでクライアントからのリクエストを受け付ける
  3. CLIENT SOCKETを取得するとCLIENT SOCKEを通じてクライアントと通信開始
  4. CLIENT SOCKETからHTTPリクエストのプロトコルヘッダを読む
  5. HANDLERに処理が渡りクライアントの要求を準備
  6. CLIENT SOCKEを通じてデータを書き出す
Goのhttp キーワード

今度調べる・・(かも)

  • Conn
  • ServeMux

net/httpパッケージの解説を読んだりしたけど、ちょっと難しかった・・

 

Lightning Network

ブロックチェーンの技術はあれもこれも追いかけられないので、LNに絞って勉強会などに参加してます。昨日はHashHubさんのLightning Night に参加してきました。毎回だいたい同じような内容を聞くのですが、だいぶ用語が聞き慣れてきた感じ。

Lapps、なんか作りたいな〜

と、悶々と妄想しながら帰ってきました。

 

読んだ本

久々に正社員になって、今年4月にひとり新人君を受け持つことになりました。はじめてですね、仕事で人に教える立場になるの。

以下の本をさらさらと読んでます。

要約:毎日1回3分は部下と話をしよう。

子育てに共通するものがる。子どもとの会話、だいじね。よく「おかーさん、聞いてない」って言われるの。

 

あとこれ。

 

-GoLang, ブロックチェーン