Post

HTTP

2019-03-24 21:58:28

URLルーティングをつくる エピソード3(完結編)

概要URLルーティングをつくる エピソード1 とURLルーティングをつくる エピソード2 でURLルーティングの自作について試行錯誤の過程を記してきたが、ようやく一段落させることができたので完結編という形で締括くりたい。 完結、といっても課題はいくらでもあるし突き詰めるとこればっかりに時間をかけることができるようなモノであるということは承知している。。。 前回までの話しエピソード1 では、ルーティングのデータ構造を考えたり、とりあえず手を動かして実装のイメージを掴もうとした。(動くところまで持っていけなかった。。。) エピソード2では、データ構造を見直したり、参考になりそうなリポジトリを漁って...

プログラミング

php URLルーティング HTTP アルゴリズム 木構造

2019-01-09 02:20:08

URLルーティングをつくる エピソード2

概要URLルーティングをつくる エピソード1の続き。 とりあえず動く形のものを仕上げてpackagist - ahi-routerという名前でパッケージ公開した。 エピソード1からの変更点エピソード1では、データ構造に木構造を採用してルーティングを作ろうというと試みた。 パフォーマンスが考慮されているライブラリでは、木構造を生成するロジックを用意して、最適化された探索アルゴリズムを実装するような形になっているようだが、木構造を生成するロジックをかくのはめん(ry 時間がかかりそうだったので、探索部分だけ頑張る方向性でやってみることにした。 前回はルーティング定義のデータ構造を、 <?ph...

プログラミング

HTTP URLルーティング アルゴリズム 木構造

2018-12-19 02:38:10

URLルーティングをつくる エピソード1

URLルーティングをつくる エピソード1概要以前、Reactで非常に軟弱なルーティング(cf. ReactとHistory APIを使ってrouterを自作する)を作ったが、改めてそこそこにちゃんとしたルーティングを自作したいと思い、挑戦することにした。きっかけは、最近触っているGolangだ。Golangでは標準ライブラリを駆使することでアプリーケーションをうすーく実装できるようだが、ルーティング周りは標準ライブラリがパワー不足なのものあって、外部のライブラリに依存するケースが多いらしい。そんなこともあってルーティングを自作できるようになるとGolangでもそれ以外でもルーティングを自前で用...

プログラミング

HTTP アルゴリズム URLルーティング 木構造

2018-07-01 12:22:34

ネットワークはなぜつながるのか 第2版

ネットワークはなぜつながるのか 第2版 第1章 Webブラウザがメッセージを作る~ブラウザ内部を探検~ 第2章 TCP/IPのデータを電気信号にして送る~プロトコル・スタックとLANアダプタを探検~ 第3章 ケーブルの先はLAN機器だった~ハブとスイッチ、ルーターを探検~ 第4章 アクセス回線を通ってインターネットの内部へ~アクセス回線とプロバイダを探検~ 第5章 サーバー側のLANには何がある 第6章 Webサーバーに到着し、応答データがWebブラウザに戻る~わずか数秒の「長い旅」の終わり~ 第1章 Webブラウザがメッセージを作る~ブラウザ内部を探検~1.3 世界...

HTTP DNS IP ブラウザ

2018-06-15 11:31:46

GraphQLとは

GraphQLとは Facebookが開発 APIのためのクエリ言語 APIのリクエストのデータ形式とレスポンスのデータ形式が似ているため、ユーザーフレンドリー RESTはアーキテクチャ(設計)であり、GraphQLは言語(DSL)である REST APIとGraphQLの比較REST APIのAPI形式エンドポイントに対して、HTTP動詞でリクエストを投げる curl https://api.bmf-tech.com/v1/configs [ { "id": 1, "name": "title&q...

プログラミング

api HTTP rest GraphQL

2018-05-06 22:45:15

Real World HTTP

Real World HTTP 1章 HTTP/1.0のシンタックス:基本となる4つの要素 2章 HTTP/1.0のセマンティクス:ブラウザの基本機能の裏側 3章 Go言語によるHTTP/1.0クライアントの実装 4章 HTTP/1.1のシンタックス:高速化と安全性を求めた拡張 5章 HTTP/1.1のセマンティクス:広がるHTTPの用途 6章 Go言語によるHTTP1.1クライアントの実装 7章 HTTP/2のシンタックス:プロトコルの再定義 8章 HTTP/2のセマンティクス:新しいユースケース 9章 Go言語によるHTTP/2、HTML 5のプロトコルの実装 10章 セキュリティ:ブラウ...

golang HTTP

2018-04-21 11:04:59

HTTPとSSL/TLS

HTTPSとは HTTP(Hyper Transfer Protocol) over TLS(Transport Layer Security) TCPハンドシェイクの後にTLSハンドシェイクを行う 完了後、暗号通信のままHTTPリクエストとレスポンスを交換 TLSの機能TLSというプロトコルが提供する機能 機密性 ネットワーク経路上でデータの中身が見れない 完全性 通信データの改ざん防止 メッセージ認証(MAC: Message Authentication Code)により、完全性を確保 真正性 なりすまし防止 認証局が発行するサーバー証明書をブラウザがアクセス先が正当...

ネットワーク

HTTP HTTPS SSL TLS