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サーバーのプロセス
- LISTEN SOCKETを作成し、指定したポートを監視
- LISTEN SOCKEでクライアントからのリクエストを受け付ける
- CLIENT SOCKETを取得するとCLIENT SOCKEを通じてクライアントと通信開始
- CLIENT SOCKETからHTTPリクエストのプロトコルヘッダを読む
- HANDLERに処理が渡りクライアントの要求を準備
- CLIENT SOCKEを通じてデータを書き出す
Goのhttp キーワード
今度調べる・・(かも)
- Conn
- ServeMux
net/httpパッケージの解説を読んだりしたけど、ちょっと難しかった・・
Lightning Network
ブロックチェーンの技術はあれもこれも追いかけられないので、LNに絞って勉強会などに参加してます。昨日はHashHubさんのLightning Night に参加してきました。毎回だいたい同じような内容を聞くのですが、だいぶ用語が聞き慣れてきた感じ。
Lapps、なんか作りたいな〜
と、悶々と妄想しながら帰ってきました。
読んだ本
久々に正社員になって、今年4月にひとり新人君を受け持つことになりました。はじめてですね、仕事で人に教える立場になるの。
以下の本をさらさらと読んでます。
要約:毎日1回3分は部下と話をしよう。
子育てに共通するものがる。子どもとの会話、だいじね。よく「おかーさん、聞いてない」って言われるの。
あとこれ。