Web標準のHTTPクライアントfetch()でストリーミングしながらアップロードできるようになる。
Web標準のHTTPクライアントfetch()でストリーミングしながらアップロードできるようになる。
はじめに 2017年3月、Struts2にまたしても新たな脆弱性(S2-045、S2-046)が見つかり、複数のウェブサイトにおいて情報漏洩等の被害が発生しました。筆者は2014年4月(およそ3年前)に「例えば、Strutsを避ける」という記事を書きましたが、今読み返してみると「やや調査不足の状態で書いてしまったな」と感じる点もあります。今回、良いタイミングなのでもう一度Struts2のセキュリティについてざっとまとめてみたいと思います。 なぜJavaなのにリモートからの任意のコード実行(いわゆるRCE)が可能なのか Struts2はJavaアプリケーションであり、Java製のアプリケーションサーバ上で動作します。Javaはいわゆるコンパイル型の言語であるため、通常はランタイムにおいて任意のコードを実行することはできず、RCEは難しいはずです。 JavaのウェブアプリケーションでRCEが成
Facebook, Twitter等で軽く報告しておりましたが、イラスト図解式 この一冊で全部わかるWeb技術の基本の監修をしました。執筆したのは、所属するNRIネットコムの同僚2人です。どちらも、大学時代しっかり情報工学を学んで、入社してからはインフラ寄りの仕事をしている人間です。Webの仕組みを説明するにはピッタリな人間によって書かれています。 イラスト図解式 この一冊で全部わかるWeb技術の基本 作者: 小林恭平,坂本陽,佐々木拓郎出版社/メーカー: SBクリエイティブ発売日: 2017/03/16メディア: 単行本この商品を含むブログを見る 対象読者は? 入門書なので、これからITエンジニアを目指す人や、なりたての人、或いはIT業界に入ったのでWebとはなんぞやと知りたい営業・企画の人など、非エンジニアでも読めるように意識して書かれています。そもそもWebと一口に言っても、現在では
今日では HTTP(s) で API が公開されることは当たり前の時代ですが、エラーをアプリケーションにどう伝えるかは、個々の API の設計に依存していました。特に、HTTP ステータスコードは有限であり、元々持っている意味があるので、自由に使うことはできません。API はそのドメインごとにもっと複雑で細かなエラー情報があるはずで、それらはレスポンスボディに載せてアプリケーションに伝えることになりますが、その書式に規定は今までありませんでした。 HTTP API にて、アプリケーションにエラー情報を伝達するための(レスポンスボディに載せられる)標準的な形式が、RFC7807 Problem Details for HTTP APIs で定められています。適用例としては、以下のようになります。 HTTP/1.1 403 Forbidden Content-Type: application
可能な限り最新の情報を反映していますが、追いつけていないこともあります。本サイトに採用していても、記事に反映できていない設定もあります。ページのソースを読んでいただくと、参考になる箇所があるかもしれません。 ウェブページの高速化に関するテクニックは、ネットで検索すれば簡単に見つけることができます。優れた情報も数多くありますが、「CSSとJavaScriptはminify(ミニファイ)しておけばOK!」のような都市伝説も少なくありません。 そこで、ここでは本サイトのデザインリニューアル時に施した対策をもとに、一歩進んだウェブページの高速化の方法と、それを支える原理について、できる限り分かりやすく説明したいと思います。フロントエンジニアやデザイナーの方からすれば「んなもん知っとるわ!」な情報なのかもしれませんが、都市伝説を駆逐すべく、私なりの仕方で解説(≒加勢)したいと思います。 初めに結果を
元ネタ RFC3986定義の厳密なHTTP URIの正規表現 何をしたか PHP向けに以下の編集を行いました。 適当な文字数毎に分割した文字列リテラルに (Atomなどのエディタは一行が長すぎると重くなる) デリミタ ` を付加 i 修飾子を付加 グループに関して、全てキャプチャ無しに 繰り返しパターンに関して、全てバックトラックを行わないよう独占的に aaahttp://などにはマッチしないように,先頭に単語境界の判定を付加 コード $regex = '`\bhttps?+:(?://(?:(?:[-.0-9_a-z~]|%[0-9a-f][0-9a-f]' . '|[!$&-,:;=])*+@)?+(?:\[(?:(?:[0-9a-f]{1,4}:){6}(?:' . '[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:\d|[1-9]\d|1\d{2}|2' . '[0-
「翻訳: WebAPI 設計のベストプラクティス」を読んで色々と思うところがあったので書きました。 上記の記事は訳文でありますので、正しくは「Best Practices for Designing a Pragmatic RESTful API」に対する所感と述べた方が良いのかもしれませんが、日本語で通して読めるよう Qiita に投稿された訳文に対する所感として書いています。 以下では「翻訳: WebAPI 設計のベストプラクティス」並びに「Best Practices for Designing a Pragmatic RESTful API」は「当該記事」と表現します。 観点 当該記事では「○○とした方がよい」との意見に対してそうすべき理由が明らかになっていないか、もしくは表現が曖昧な場合が目立っていると感じました。設計は実装のようにプログラム言語仕様が制約を与えられないため、意図
curlとWgetの主な違いについて著者(Daniel Stenberg)の私見を述べています。自分の子どもとも言える curl をひいきしていますが、 Wget にも携わっているので、思い入れがないわけではありません。 この記事に関するご感想やご意見をお寄せください。 問題点や改善点があると思われる場合は、 Issueやpull-requestを発行 してください。 共通点 FTPやHTTP、HTTPSからコンテンツをダウンロードできるコマンドラインツールです。 HTTP POSTリクエストを送信できます。 HTTPクッキーをサポートしています。 スクリプトの中で使用したりできるよう、ユーザインタラクションがなくても動作するようにデザインされています。 完全なオープンソースで、無料のソフトウェアです。 開発プロジェクトとして90年代に立ち上げられました。 metalink をサポートして
忌み嫌われるキャッシュたち。 キャッシュはどうやら、世間では嫌われ者のようです。 ScrenCaptured_2016-03-05_0.54.33 どうして、そんなにキャッシュされるのがイヤなんだろうか。 そもそもキャッシュってなんだっけ? キャッシュとは、更新されていないコンテンツ(画像、CSS、JS、HTML、DNS結果など)を何度も何度も取得行かずに済むように、クライアントPC側で保存し再利用する仕組み。 つまり、転送量の節約。無駄な転送を控える。非常にエコな仕組みであります。 HTTPのエコ。HTTPはエコなプロトコルだったはず。 3つのR です。 Reduce Reuse Remix 。複数のファイルをそれぞれ、別途管理して1つのページとして構成(Remix)する仕組みです。 ブラウザのキャッシュを利用するメリット 通信料の節約、画面表示の高速化、戻るボタン対応など。 ブラウザは
Intro Chrome が予定している <link rel=stylesheet> の挙動の変更について、 Google Chrome チームの Jake が、興味深いブログを上げている。 The future of loading CSS この内容は、単に Chrome に対する変更だけではなく、 HTTP2 によって変化する最適化手法と、それを最も活かすための HTML, CSS の構成についてのヒントがある。 今回は、この内容を意訳+補足解説し、本サイトに適用していく。 HTTP/1.1 時代の CSS HTML 自体がコンポーネントを意識した作りになっている場合は、自然と CSS も class などを使いコンポーネント単位に作ることができるだろう。 しかし、 HTTP/1.1 では、リクエストの数を減らすために全ての CSS を 1 つ(もしくは少数個)に結合する最適化が主流だ
ウェブページの描画 (first-paint) までの時間を測定するツールを作った件、もしくはHTTP2時代のパフォーマンスチューニングの話 ウェブページの表示までにかかる時間をいかに短くするかってのは、儲かるウェブサイトを構築する上で避けて通れない、とても重要な要素です。 少し古いデータとしては、たとえば、ウェブページの表示が500ミリ秒遅くなると広告売上が1.2%低下するというBingの例なんかも知られているわけです。 「ウェブページの表示までにかかる時間」と言った場合、実際には以下のようないくつかのメトリックがあります。 イベント 意味
<20190814追記> EV SSL証明書についてはブラウザ側の扱いが変わりつつあり、当エントリは古い情報ということで下記エントリを参照頂きたい。 </追記終わり> 【追記 2015/09/15 10:50】書き方が悪かったようで、go.jpなんだからEV SSL証明書じゃなくていいだろというコメントが付く。意図を説明しておく。 EV SSL証明書を使うと、下記のようにブラウザのURL欄を見れば正規のサイトであることが一目瞭然。そのため毎回細かくURLを確認する必要が無い。幅広い利用者がいる今回の国勢調査オンラインの場合、利用者にリテラシを求めるより、見て分かるほうが一定のセキュリティを担保しやすい(フィッシングサイトに引っ掛からない)と考える。 スクリーンショットは【20140614加筆・訂正】三菱東京UFJ銀行を騙るフィッシングサイトが例の「偽画面に注意!」そっくりらしいのだが、なん
唐突にすいません。 はてなブックマークについてささやかなお願いがあります。 ちょっと気になるWikipediaのページを発見するじゃないですか。 で「どんなブコメが付いてるんだろ?」と気になるじゃないですか。 例として挙げると ほとんど整数 - Wikipedia https://ja.wikipedia.org/wiki/%E3%81%BB%E3%81%A8%E3%82%93%E3%81%A9%E6%95%B4%E6%95%B0 はてなブックマーク - ほとんど整数 - Wikipedia http://b.hatena.ne.jp/entry/s/ja.wikipedia.org/wiki/%E3%81%BB%E3%81%A8%E3%82%93%E3%81%A9%E6%95%B4%E6%95%B0 「2users?少ないなあ」と思いつつブクマしようとしてある事を思い出しました。 数ヶ月
12. HTTP/2フレーム Length : ペイロードのオクテット数 Type : フレームの種類、データフレームやヘッダーフレームなどを指す Flags : ストリームの終了やらのフラグ Stream Identifier : 31bitのストリームのID R : 未定義 Frame Payload : タイプによって決められたデータ形式のデータの領域 13. フレームタイプ Type Name Summary Binary DATA ストリームに関連する任意の可変長オクテット列。 0x0 HEADERS 名前-値のペアを転送する。ストリームの開始に仕様される。 0x1 PRIORITY 送信者からストリームの優先度を指定する。 0x2 RST_STREAM ストリームの即時終了を表す 0x3 SETTINGS エンドポイントの通信方式に影響を与える設定など。 0x4 PUSH_PR
概要 社内プロキシに様々なサイトへのアクセスをブロックされたり、社外サーバにsshできなかったりする人向けに社外プロキシを立ててあらゆるサイトにアクセスする方法のまとめです。(後述しますが半分くらいネタポストです。) 他にも以下のような効果がありますので、プロキシフリーな会社にお勤めもし良かったら参考にして頂ければと思います。 なぜか2015年になっても存在するカフェとかホテルとかでの保護されていなかったりする無線wifiを使っても盗聴されない。 日本からアクセスできないサイトにアクセスできる。(海外のデータセンタ上のVMを使った場合) なお、非認証プロキシを例にしてます。認証プロキシでもあまり変わらないとは思いますが、環境が無いため未確認です。また、プロキシの挙動や設定方法はプロキシサーバの種類や設定によって多岐に渡るため、全てのプロキシで同じ方法が使えるとは限らないとは思います。 最後
以前から「誰か書いてくれませんかね」とか言っていた「本当の基礎からのWebアプリケーション入門――Webサーバを作ってみよう」ですが、誰も書いてくれないので自分で書きました。 本当の基礎からのWebアプリケーション入門――Webサーバを作ってみよう http://kmaebashi.com/programmer/webserver/index.html 現状、合計で140行くらいのJavaプログラムで、普通に画像やCSSを含むWebページが表示できています。こちらのページの下のほうにも画像を貼っていますが、こんな感じで、ローカルのファイルシステムに置いてある私のWebサイトのトップページが表示できていますし、もちろんリンクをクリックして遷移することもできます。 「えっ? Webサーバってこんなに簡単に書けるの?」と思う人も多いのではないでしょうか。 もちろんこんなのは「わかっている人」から
RFC(Request For Comments) 2616をはじめとした、HTTP(Hypertext Transfer Protocol)に関する文献などを紹介し、HTTPやWWW(World Wide Web)に関連する技術についての知識を深めるためのサイトです。About [Studying HTTP] 当サイトは、RFC 2616をはじめとした、HTTPに関する文献などを紹介し、HTTPやWWWに関連する技術についての知識を深めるためのサイトです。 当サイトを初めてご利用になる方は、Studying HTTP : Helpをお読みいただき、記述の内容にご同意の上、ご利用下さい。 2014.11.26 更新 当サイトへのご連絡は、現在メールのみとなっております。 Main Contents HTTP Status Code HTTP/1.1仕様書などで定義されているHTTPステータ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く