uokadaの見逃し三振は嫌いです

ここで述べられていることは私の個人的な意見に基づくものであり、私が所属する組織には一切の関係はありません。

Go

GoでHTTPリクエストのdebug proxyを書いた

タイトル通り、前のエントリーの続きでデバッグ用のproxyサーバーを書いたのでそのときに引っ掛かったところをメモ書き。 httputil - The Go Programming Language GoでProxyサーバーをたてるにはhttputilパッケージにあるNewSingleHostReverseProxy を呼ん…

既存のWebサーバーをGoで実装し直すためにやってること

とあるWebサーバーが機能不足でちょっと使いづらいため、Goで実装し直そうとしている。 とりあえず、エントリーポイントが分かってるのでそこにどんなリクエストが飛んでいるかをダンプするところから始めている。 それで書いたコードがこれ。 httputilパッ…

自分の写真整理するためのGoスクリプトを書いた。

みなさん大掃除は済みましたか? 自分は今パソコンの中を大掃除中です。 今年たくさん写真とったおかげでMACのディスクをかなり圧迫していてちょうどそれの整理をしています。 自分のカメラは1枚の写真に対してORFとJPGファイルを2つ生成するような設定とな…

tlsプロトコルの検証用のサーバーをgoで書いてみた。

Go

ブラウザのSSLプロトコルの対応状況を調べるためにSSLプロトコルを簡単に切り替えられるサーバーをGoで書いてみた。 httpd における POODLE SSLv3.0 脆弱性問題の解決方法 (CVE-2014-3566) - Red Hat Customer Portal [iOS 9] iOS 9 で追加された App Transp…

GoでHello Worldサーバーを作る

いまさらな感じですがHello Worldサーバーをhttp.ServeMux使ってやる方法で書いてみた。 package main import ( "flag" "fmt" "log" "net/http" ) type BaseHandler struct { Name string } func (bh *BaseHandler) ServeHTTP(w http.ResponseWriter, r *htt…

go build時に変数を埋め込む方法

Go

社内で使うGO製ツールにバージョンを埋め込みたくなったのでちょっと動作確認してみた。 ldflagsオプションから変数を渡すことが出来るとのことだったので適当なコードを書いてみた。 % go build -ldflags="-X main.version 1.0" % ./build -h test tool Ver…

http.Clientでちゃんとhttpsのリクエストを投げる

SSL証明書使って手元のマシンでhttpsサーバーをたちあげて動作検証してると下のようなSSL証明書周りのエラーが出ませんか? 今回はそんな時の対策方法の紹介です。 go run tlsclient.go 2015/05/07 18:28:58 Get https://localhost/: x509: certificate is v…

Goのサーバーでredirect処理する

Go

package main import ( "net/http" ) func RedirectHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html") w.Header().Set("location", "http://www.yahoo.co.jp/") w.WriteHeader(http.StatusMovedPermanently) …

GoでSSL証明書を確認するときの簡易なサーバー

SSL証明書を更新する前に本番にエイやで作業する前に簡単に確認できるTLSサーバーを書いた。 ファイル名とかは最初固定だったけど一応引数で取れるようにしてみた。 * うちの運用体制だとこれで十分なので固定してても十分に足りる。 package main import (…

gorilla/muxのPathでハマってる話

Go

gorilla/mux 使ってwebアプリつくろうと思って下みたいなルーティングを作ったんだけど、 "//"の部分がどうにもダメらしい。 package main import ( "net/http" "github.com/gorilla/mux" ) func init() { r := mux.NewRouter() r.HandleFunc("/*{protocol:(…

GoでHTTPサーバーをFCGIサーバーに変えるための変更点

Go

netとfcgiモジュールを導入するだけで簡単に対応できた。 もっと変更点あるかと思ったが差分とったらこれぐらい。 % diff -w -U1 backendserver.go fbackendserver.go --- backendserver.go 2014-12-13 22:27:16.000000000 +0900 +++ fbackendserver.go 2014…

改・Go言語でXMLのパースする

Golang: Convert JSON to Struct jmervine/gojson-http このツールを見てたら自分の知らないstructの定義の仕方があったのでこれをXMLでも出来るよなと思ってやってみた。 以前は struct を3つ定義していたものが改修してみる。 type AllowAccessFrom struc…