タグ

httpに関するkoko1000banのブックマーク (48)

  • HTTPで疎通やレイテンシを確認する「httping」 - 元RX-7乗りの適当な日々

    少し前に、某所のサーバ(自分たちで管理)で、通常時は問題ないのだけど、時々HTTPレスポンスで数秒かかる現象が見受けられたので、再現させるときに目視確認でひたすらHTTPリクエストが送れてレイテンシが確認できる「httping」を利用しました。 httpingは、所謂"ping"のHTTP版。HTTPリクエストでポーリングしてくれるコマンドです。ICMPは受け付けないけどHTTPはOK、そんなサーバにも監視などで使えます。 インストール Ubuntuでは、aptでインストールできました。簡単。 $ sudo apt-get install httpingこれだけです。 簡単な使い方 $ httping (URLまたはIPアドレス)で、実行可能です。以下、実行例。 $ httping http://xxx.xxx.xxx.xxx/ PING xxx.xxx.xxx.xxx:80 (http:

    HTTPで疎通やレイテンシを確認する「httping」 - 元RX-7乗りの適当な日々
  • http:は省略すれば空気読む - komagataのブログ

    こちらでご指摘を貰ってはじめて知ったんですが、 <a href="//example.com">foo</a> こういう風に書けるのね・・・。 RFC 2396にちゃんと書いてあるらしい。 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> こう書けるのは嬉しいなー。

  • ウェブページを完全に削除したときは404よりも410のHTTPステータスコードを返すといい

    今日は技術的なトピックを扱います。 通常、ウェブページがもう存在しなくなったときは404のHTTPステータスコードを返します。 するとしらばくすれば検索結果からも消えます。 しかしGoogleウェブマスターツールでは、ずっと以前になくなったはずのページが「クロールエラー」セクションで「見つかりませんでした」として表示されることがあります。 理由は、404エラーを返したページが今でもないままなのか確認するためにGooglebotが再訪問するためです。 404は“Not Found”(見つからない)で、ページがなくなったことではなくアクセスできない状態を示します。 アクセスできない理由は、ページを削除したことではなくネットワークの障害やサーバーの不具合による一時的なものかもしれません。 通常のページよりは頻度が低いですが、その404を返したページを再び訪問して相変わらずないままなのかそれとも再

    ウェブページを完全に削除したときは404よりも410のHTTPステータスコードを返すといい
  • クライアント側でのクッキーの扱い方 - 再帰の反復blog

    Gaucheでクライアント側でのクッキー処理のプログラムを書こうとしたら、 クッキーの知識を全然もっていないことに気づいたのでメモ。 クッキーの扱い 広く使われているクッキーは、ネットスケープで実装され提案されたものに沿ったもの。RFC 2109やRFC 2965に記述されているクッキーは全く使われていない。 ネットスケープの提案(日語訳): かなり説明不足な仕様。たいていのウェブブラウザが受け付けるクッキーは、ここで説明されているものにもとづいている。 RFC 2109: 普及しなかった仕様その1。ネットスケープ版のクッキーにいくつか非互換の変更を加えている。expires属性が無くて代わりにmax-age属性。version属性が必須。domain属性の値は必ずドットから始める、など。RFC2965によりObsoleted(破棄)になった。 RFC 2965: 普及しなかった仕様その

    クライアント側でのクッキーの扱い方 - 再帰の反復blog
  • 「断絶」鑑賞 – KingInK

    アメリカン・ニューシネマの隠れた名作として知られる(らしい)、モンテ・ヘルマン監督の「断絶」(1971)を鑑賞。 物語としての情報を、最低限のもの以外は徹底的に切り落とした虚無的なロードムービーで、登場人物たちにも名前が与えられておらず、クレジット上ではただ「運転手」とか「メカニック」などと表記されるのみ。彼らの経歴や年齢などについても一切説明はなく、ただロードレース、および路上を走ることだけにとりつかれた男たちの姿を追っている。英語でいえば「zen-like」な作品ということになるのかな。 運転手とメカニックが東海岸を目指してチューンアップしたシェビーを走らせ、途中で家出少女を乗せてやり、それからウォーレン・オーツ演じるGTO乗り(その名もずばり「GTO」!)とお互いの車を賭けてワシントンDCまでのレースをするというプロットはあるんだが、じゃあ血湧き肉踊るレースが展開されるのかというとそ

  • 第26夜 Javaの高機能HTTPクライアント その2 - しんさんの出張所 はてなブログ編

    24夜Javaの高機能HTTPクライアントの続き。 前回は引数も何もなしのgetだけやった。今回はパラメータを渡してみよう。 その前に受け取り側のサーバーのコードを書いておく。JAX-RSが楽なのでJAX-RSで。JavaSEのスタンドアロンサーバーで動かしたりJavaEE 6準拠のGlassfish V3で動かしたりTomcat 6でも動かせるので詳しく知りたい人は過去のエントリを参考にどうぞ。 package jaxrs; import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.POST; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.Qu

    第26夜 Javaの高機能HTTPクライアント その2 - しんさんの出張所 はてなブログ編
  • 24夜 Javaの高機能HTTPクライアント - しんさんの出張所 はてなブログ編

    JavaでHTTPクライアントを利用する場合何を利用しているだろうか。 直にソケット通信はやってる人はまずいないだろう。ヘッダとかなにもあったもんじゃないし。 標準APIで一番利用されるのはHttpURLConnectionだろうか。でもこれも面倒だ。一番やり取りをするEntityの扱いがInputStreamだけで非常に貧弱だ。 そこでJAX-RSの参照実装であるJerseyのクライアント。ほかにもJAX-RSの実装ではクライアントが各自あるが、今回はもっともメジャーなJerseyで。 Client client = Client.create(); WebResource wr = client.resource("http://www.yahoo.co.jp/"); String result = wr.get(String.class); System.out.println(re

    24夜 Javaの高機能HTTPクライアント - しんさんの出張所 はてなブログ編
  • Proofreading HTTP Server - suztomoのはてなダイアリー

    Writing *correct* English is always a hard task for most of Japanese people. Microsoft Word provides powerful functionality to proofread our poor English. However, not everyone likes Microsoft. This is the reason why I created an HTTP server that proofreads text using Microsoft Word's spell check functionality. 卒論とかで英語で書かないといけないですよね。Microsoft Wordの文章校正機能は僕の英語力よりも素晴らしいのですが、全員が全員Microsoftを好きというわけじゃな

    Proofreading HTTP Server - suztomoのはてなダイアリー
  • If-None-Matchに「*」をつけたときの挙動 - 日向夏特殊応援部隊

    http://svn.apache.org/repos/asf/httpd/httpd/trunk/modules/http/http_protocol.c の 334行目付近参照。 if_nonematch = apr_table_get(r->headers_in, "If-None-Match"); if (if_nonematch != NULL) { if (r->method_number == M_GET) { if (if_nonematch[0] == '*') { not_modified = 1; } else if (etag != NULL) { if (apr_table_get(r->headers_in, "Range")) { not_modified = etag[0] != 'W' && ap_find_list_item(r->pool, if_no

    If-None-Matchに「*」をつけたときの挙動 - 日向夏特殊応援部隊
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • clj-sys's clj-http at master - GitHub

  • ry's http-parser at master - GitHub

    This repository is private. All pages are served over SSL and all pushing and pulling is done over SSH. No one may fork, clone, or view it unless they are added as a member. Every repository with this icon () is private. This repository is public. Anyone may fork, clone, or view it. Every repository with this icon () is public.

  • http_parserを乗せ変えた話 - Doge log

    こんにちわ、情弱DQNです。 最近は寝かしていたpicowsを見直しています。 その時にとある事が気になったのでhttp_parserを乗せ変えました。 でその時の話。 以前まで 今まではmongrel, thinなどでも使われているZedの書いたragelベースのhttp parser を使用していました。 もちろんですが、python版に書き直しています。 (余談ですがeventletの作者も同じようなものを作ってますが、メモリリークしてます...) ragelベースのparesrは記述が比較的楽だし、それなりに速いので便利です。 (ただコールバックスタイルが好きかどうかって話もあるかも知れません) mongrelのパーサの処理の流れは大体こんな感じです。 start actionで開始位置のポインタをマーク 読み進め、条件にマッチしてるか判断 条件にマッチしなくなるとendと解釈 e

    http_parserを乗せ変えた話 - Doge log
  • ASIHTTPRequest Documentation - All-Seeing Interactive

    Please note that I am no longer working on this library - you may want to consider using something else for new projects. :) Where to get ASIHTTPRequest: Github project page: http://github.com/pokeb/asi-http-request/tree Download the latest version: http://github.com/pokeb/asi-http-request/tarball/master License (BSD): http://github.com/pokeb/asi-http-request/tree/master/LICENSE Google Group: http

  • 並列1000コネクションに耐える! Ruby のイベント駆動ライブラリ Rev と EventMachine の HTTPクライアント : DSAS開発者の部屋

    並列1000コネクションに耐える! Ruby のイベント駆動ライブラリ Rev と EventMachine の HTTPクライアント こんにちは、takada-at です。 Rubyのイベント駆動型ネットワークプログラミングフレームワーク Rev と EventMachine で HTTPクライアントを動かしてみました。 イベント駆動型ネットワークプログラミングフレームワークとは何か説明しだすと難しいですが、一言で言うと、以下のようになります。 # ふつうのフロー駆動型プログラム Net::HTTP.start(host, port){|http| res = http.get(path) #この処理が終わってから } puts "done" #この次の処理が実行される # イベント駆動型プログラム client = Rev::HttpClient::connect(host, port

    並列1000コネクションに耐える! Ruby のイベント駆動ライブラリ Rev と EventMachine の HTTPクライアント : DSAS開発者の部屋
  • schemeのないURLは相対URL

    知らなかった。もしかして Web を支える技術には載ってました?(未読) 問題GoogleAjaxAPI を使って jQuery を読み込んでいた開発、検証環境では http だが番では https で動くhttp での読み込みを決め打ちしてたら IE で怒られた><要件schemeの変化に自動で追随してほしいGoogle Analytics とかどうしてんの? なんか scheme の判別して URL を組み立て直してるよ。あーじゃあこれ真似すればいいか、なんかでも面倒だな。 ここで神降臨! Twitter / Yosuke HASEGAWA: @wtnabe script src="//exam … @wtnabe <script src="//example.jp/foo.js">と書けば現在のschemeで読んでくれます。 ……。ほんとだ。 RFC 2396しかし実はこの根拠が分

  • Kazuho@Cybozu Labs: キャッシュの上手な使い方

    « C-0.05 | メイン | cygwin + mod_perl » 2006年02月08日 キャッシュの上手な使い方 キャッシュといっても、ウェブブラウザやウェブプロキシのキャッシュのことです。 ・Internet Explorer のキャッシュの動作 Internet Explorer は、同一ウィンドウ内で複数回同じウェブページを読み込む場合、2回目以降はキャッシュのデータを使用します (デフォルト設定の場合、 Last-Modified または Expires ヘッダがついている場合のみ)。 つまり、同じウィンドウの中で、 ページA を読み、次にページB を読み、そしてページA を再び読み込むようなケースでは、2回目にページ A を表示する際にはキャッシュのデータが使用され、ウェブサーバへの再問い合わせは行われません。 また、 Last-Modified ヘッダと Expire

  • ブラウザキャッシュによる HTTP 高速化チューニング

    かれこれ一年ほど前に実施した実サービスでの apache のチューニングネタを思い出したように書いています。 以前いた部署では少ないサーバ台数で大量のリクエストを如何に処理しきるかってことに燃えていたので、静的コンテンツなどをブラウザに支障のない範囲で最大限にキャッシュさせ、サーバとネットワークの負荷を最小化させていました。 当時参考にした情報源は以下の3つでした。 どのようなレスポンスヘッダを返しておけばブラウザキャッシュを最大化できるかのテクニックがまとめられています。 ブラウザキャッシュとレスポンスヘッダ - murankの日記 Kazuho@Cybozu Labs: キャッシュの上手な使い方 [Studying HTTP] HTTP Status Code チューニングにおいて重要なのは自分自身での検証。というわけで自前で検証した結果と検証するために用意したプログラムを公開します。

  • はてなブログ

    応援上映という異世界 先日、スラムダンク の応援上映に行った。私はがっつりスラムダンク世代(連載当時バスケ部。兄が買っていたので月刊バスケットボールも毎月目を通していた)で、映画は4回目。みんな声出すんだろうな〜と思ってはいたけど、想像以上だった笑 始まりからすごい 段々笑え…

    はてなブログ
  • Gaucheでクローラを書くことと、そのためのライブラリ - 再帰の反復blog

    リンクをたどっていくつか巡回するだけの簡単なクローラを作ってみたら、戸惑うところが多かったので、まずはそのメモ。 戸惑ったところ http-get オプションで「:no-redirect #t」を指定しないと、自動でリダイレクトする → リダイレクトされると、持ってきたページのURIが想定していたURIと違う場合がある。→ 「http://」から始まらないパス(相対URI)を長いURI(絶対URI)に戻せない。 オプション「:sink out」を指定すると、HTTPの応答のメッセージボディは出力ポートoutに書き出されていく。「:sink out」を指定している状態でリダイレクトが発生すると、リダイレクト前にoutに書き出されたものとリダイレクト後の結果の両方が書き込まれた状態になる。flusherオプションで適切に処理させる? 文字コード関連 http-getは文字コードの指定オプション

    Gaucheでクローラを書くことと、そのためのライブラリ - 再帰の反復blog