HTTP

GoでServeMuxの機能拡張を提案するProposalがAcceptedになった

アプリケーション

以前からウォッチしていたnet/http: enhanced ServeMux routing #61410がAcceptedになったので、それについてポエムをかく。 最終的な仕様がどうなるかはわからないが、静的なルーティングの機能(/foo/barのような固定値のルーティング)しか持っていないServeMuxに動的なルーティング(/foo/:idのようなパスパラメータを使ったルーティング)の機能...

Golang router HTTP

HTTP Routerの自作で参考にした資料

アプリケーション

goblinの開発で参考にした各種ソースや自分の記事をリストアップする。 いくつかの自分のブログ記事に参考リンクを貼ったりしていたせいで分散していたので集約した。 参考 HTTP Routerの開発で参考にした資料リスト。 GitHub jba/muxpatterns importcjj/trie-go julienschmidt/httprouter gorilla/mux gowww/rou...

router HTTP URLルーティング

net/httpでつくるHTTPルーター自作入門

アプリケーション

はじめに本記事では、Golangの標準パッケージであるnet/httpを用いて、HTTPルーターを自作する方法について解説します。 標準パッケージはあまり多くのルーティングの機能を提供していません。 例えばHTTPメソッドごとのルーティングの定義ができなかったり、URLをパスパラメータとして利用できなかったり、正規表現を利用したルーティングの定義ができなかったりします。 その為、実際のアプリケーシ...

Golang HTTP

URLルーティング自作入門 エピソード2

アプリケーション

概要この記事はURLルーティング自作入門 エピソード1の続きで、Makuake Development Team Advent Calendar 2019の15日目となります。 URLルーティングを自作する前回の続きです。 ルーターを自作するにあたり、ルーターがどういった処理を行うのかデータ構造の観点から考えてみます。 ルーターがどんなInputを受け取って、どんなOutputを返すのか、動的な...

HTTP URLルーティング

URLルーティング自作入門 エピソード1

アプリケーション

概要この記事はMakuake Development Team Advent Calendar 2019の14日目の記事です。 趣味で駆け出し※URLルーティング自作マンをやっているので、URLルーティング自作界隈※に入門したい人に向けた記事となれば幸いです。 ※駆け出しというキーワードが今年はWeb界隈で流行り?ましたね。私は去年末からURLルーティング自作を始めたので駆け出しだと思います。※そ...

HTTP URLルーティング

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

アルゴリズムとデータ構造

概要URLルーティングをつくる エピソード1 とURLルーティングをつくる エピソード2 でURLルーティングの自作について試行錯誤の過程を記してきたが、ようやく一段落させることができたので完結編という形で締括くりたい。 完結、といっても課題はいくらでもあるし突き詰めるとこればっかりに時間をかけることができるようなモノであるということは承知している。。。 前回までの話しエピソード1 では、ルーティ...

PHP URLルーティング HTTP 木構造

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

アルゴリズムとデータ構造

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

HTTP URLルーティング 木構造

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

アルゴリズムとデータ構造

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

HTTP URLルーティング 木構造

GraphQLとは

アプリケーション

GraphQLとは Facebookが開発 APIのためのクエリ言語 APIのリクエストのデータ形式とレスポンスのデータ形式が似ているため、ユーザーフレンドリー RESTはアーキテクチャ(設計)であり、GraphQLは言語(DSL)である REST APIとGraphQLの比較REST APIのAPI形式エンドポイントに対して、HTTP動詞でリクエストを投げる curl https://ap...

API HTTP REST GraphQL

HTTPとSSL/TLS

ネットワーク

HTTPSとは HTTP(Hyper Transfer Protocol) over TLS(Transport Layer Security) TCPハンドシェイクの後にTLSハンドシェイクを行う 完了後、暗号通信のままHTTPリクエストとレスポンスを交換 TLSの機能TLSというプロトコルが提供する機能 機密性 ネットワーク経路上でデータの中身が見れない 完全性 通信データの改ざん...

HTTP HTTPS SSL TLS