http

abとh2load の違い

ubuntu 14 LTS abはOSのapt h2loadは公式のsourceから取ってきたもの。 serverはHTTP/2対応ではなくて、HTTP/1.0、HTTP/1.1対応のserverで実験 abはHTTP/1.0で接続 keepaliveなし "Connection: close" よってnginxのdefaultだと圧縮されない - http://nginx.…

http benchmark ツール h2load

nghttp2 に含まれるh2load が便利らしい http://hb.matsumoto-r.jp/entry/2016/01/14/114048 https://nghttp2.org/ https://github.com/nghttp2/nghttp2 https://nghttp2.org/documentation/h2load-howto.html gitからとってきてコンパイルする。 libev、lib…

ab でPOSTのベンチマーク

-p postfile postデータを書いたファイルをで指定 -T content-type "application/x-www-form-urlencoded" を指定 postfileはURLエンコードしておく必要あり。複雑なPOSTデータの場合はngrep/tcpdumpしておきながら、一度ブラウザでPOSTしたものをコピペして…

Rangeリクエスト勉強

ボディの一部分を取得するとき。レジュームによる再DLとか。応答は206 Partial Contentになる。ただし、apacheでcgi/ssiを使っていて、Centent-Lengthを返さない場合はRangeリクエストされても、200 OKでボディ全体を返す。cgi/ssi でもアプリ側でContent-Le…

apacheはContent-LengthレスポンスヘッダがないとRangeリクエストが有効にならない

っていうことを知らなかった。versionによるかも? 試したのは2.2.15。rangeリクエストはレジュームによる再DLとかで、コンテンツの一部を取得したいときに使う。他には携帯で動画をDLして再生するときとかに使われてる? http://www.studyinghttp.net/heade…

ファイルをダウンロードさせるときのhttp header とファイル名

http://www.studyinghttp.net/header Content-Dispositionヘッダでファイル名を指定。 Content-Disposition: attachment; filename="hoge.txt"perlのCGIモジュールなら $self->header( -attachment => 'hoge.txt', ); とすればContent-Dispositionにhoge.txt…

HTTPのキャッシュとレスポンスヘッダ勉強

http://www.studyinghttp.net/header#Pragma http://www.studyinghttp.net/header#Cache-Control HTTP/1.0はPragma (Cache-Controlは実装してないので無視されるかも) HTTP/1.1はCache-Controlを優先ということなので両方送っておくのが無難。CGI::Applicati…

HTTPS通信時のURLは暗号化されるか

2018/06 追記 古い記事ですがちょこちょこアクセスいただいているので更新。 最近は常時SSL、IPv4枯渇、CDN導入などの理由でSNIが良く使われるようになってきていますが この場合、ホスト名(URL全体ではない)は平文で送信されます。client 側でキャプチャし…

HTTPのパイプライン復習

http://blog.livedoor.jp/dankogai/archives/50719947.html https://developer.mozilla.org/ja/HTTP_Pipelining_FAQ http://d.hatena.ne.jp/dayflower/20081024/1224830945 keepaliveの一歩上。リクエストを先にまとめて投げる。最近のapacheではデフォルト…

HTTPのPOSTメソッド 超初級メモ - Content-typeについて

http://www.studyinghttp.net/method#POST http://www.studyinghttp.net/body#Multipart ざっくり application/x-www-form-urlencoded 文字列データだけをPOSTする場合。GETクエリみたいにkey1=value2&key2=value2とかで送る。 multipart/form-data ファイル…

URL内にbasic認証のusernameとpasswordを書く

知らねかった。こんな感じで。 http://user:pass@example.com/ username,passwordに"@"を含む場合はエスケープして"%40"にする。