Enviar búsqueda
Cargar
はじめてのUser-Agent文字列
•
6 recomendaciones
•
8,639 vistas
Kenta USAMI
Seguir
User-Agent文字列ってなんだよ入門
Leer menos
Leer más
Internet
Denunciar
Compartir
Denunciar
Compartir
1 de 22
Descargar ahora
Descargar para leer sin conexión
Recomendados
たのしい独自フレームワーク
たのしい独自フレームワーク
Kenta USAMI
Real World PHP in pixiv
Real World PHP in pixiv
Kenta USAMI
Phpでアプリケーションサーバー
Phpでアプリケーションサーバー
k-motoyan
PHPという概念が存在しない退屈な世界
PHPという概念が存在しない退屈な世界
Yoshihiro Ohsuka
WebAssembly text format で画像処理を書くぞ
WebAssembly text format で画像処理を書くぞ
Kohei Kawasaki
WebStormでできること
WebStormでできること
kamiyam .
IDEALIZE YOU
IDEALIZE YOU
佑介 九岡
Re: WebServer BenchMarking
Re: WebServer BenchMarking
Ryo Tomidokoro
Más contenido relacionado
La actualidad más candente
それPhpStormで出来るよ #phpstudy
それPhpStormで出来るよ #phpstudy
晃 遠山
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
晃 遠山
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
Hiroshi Toda
C# CloudScript Azure Functions との連携
C# CloudScript Azure Functions との連携
YutoNishine
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
晃 遠山
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
Hiroshi Toda
apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin Serverっぽいやつをつくった
Junichi Ishida
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
Taiji INOUE
anybuild/Hosting casual #1
anybuild/Hosting casual #1
Ryo Kuroda
VIOPS10: DMM.comのインフラのこれから
VIOPS10: DMM.comのインフラのこれから
VIOPS Virtualized Infrastructure Operators group ARCHIVES
Infrastructure as codeのススメ
Infrastructure as codeのススメ
kanji htmt
Composerはじめました
Composerはじめました
Takashi Nojima
真Intermediate languageのキホン
真Intermediate languageのキホン
Kouji Matsui
Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料
Shohei Kobayashi
サービス構成説明書@このこん
サービス構成説明書@このこん
Fukuda Takuro
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話
Shohei Tai
WeblateでOSSの翻訳に参加する
WeblateでOSSの翻訳に参加する
裕士 常田
PHPデプロイツールの世界
PHPデプロイツールの世界
Yuuki Takezawa
La actualidad más candente
(19)
それPhpStormで出来るよ #phpstudy
それPhpStormで出来るよ #phpstudy
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
C# CloudScript Azure Functions との連携
C# CloudScript Azure Functions との連携
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin Serverっぽいやつをつくった
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
anybuild/Hosting casual #1
anybuild/Hosting casual #1
VIOPS10: DMM.comのインフラのこれから
VIOPS10: DMM.comのインフラのこれから
Infrastructure as codeのススメ
Infrastructure as codeのススメ
Composerはじめました
Composerはじめました
真Intermediate languageのキホン
真Intermediate languageのキホン
Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料
サービス構成説明書@このこん
サービス構成説明書@このこん
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話
WeblateでOSSの翻訳に参加する
WeblateでOSSの翻訳に参加する
PHPデプロイツールの世界
PHPデプロイツールの世界
Destacado
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
近況の報告と自宅警備員が失職した話
近況の報告と自宅警備員が失職した話
Kenta USAMI
LightNode - Micro RPC/REST Framework
LightNode - Micro RPC/REST Framework
Yoshifumi Kawai
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
柴田 篤志
フレームワーク
フレームワーク
yanchi
behatで始めるBDD
behatで始めるBDD
Tsutomu Chikuba
Dependency Injection and Pimple
Dependency Injection and Pimple
DQNEO
20141030 html5j-firefox os-deviceapi
20141030 html5j-firefox os-deviceapi
Noritada Shimizu
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
Hideo Kashioka
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
Osamu Monoe
ウェブ標準デバイス系 API 総集編 2014
ウェブ標準デバイス系 API 総集編 2014
Futomi Hatano
CakePHP PHP Framework
CakePHP PHP Framework
ryota ichie
Cake Php開発事例
Cake Php開発事例
柴田 篤志
Laungage Update PHP編
Laungage Update PHP編
Yoshio Hanawa
Phpフレームワーク 「laravel」でブログを作ろう
Phpフレームワーク 「laravel」でブログを作ろう
Syouta Tada
PHPによるユニットテスト入門
PHPによるユニットテスト入門
Hiromu Shioya
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
Wataru Terada
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
Kenichi Mukai
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
leverages_event
Destacado
(20)
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
近況の報告と自宅警備員が失職した話
近況の報告と自宅警備員が失職した話
LightNode - Micro RPC/REST Framework
LightNode - Micro RPC/REST Framework
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
フレームワーク
フレームワーク
behatで始めるBDD
behatで始めるBDD
Dependency Injection and Pimple
Dependency Injection and Pimple
20141030 html5j-firefox os-deviceapi
20141030 html5j-firefox os-deviceapi
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
ウェブ標準デバイス系 API 総集編 2014
ウェブ標準デバイス系 API 総集編 2014
CakePHP PHP Framework
CakePHP PHP Framework
Cake Php開発事例
Cake Php開発事例
Laungage Update PHP編
Laungage Update PHP編
Phpフレームワーク 「laravel」でブログを作ろう
Phpフレームワーク 「laravel」でブログを作ろう
PHPによるユニットテスト入門
PHPによるユニットテスト入門
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
Similar a はじめてのUser-Agent文字列
Attractive HTML5
Attractive HTML5
Sho Ito
Movable type seminar 20120703
Movable type seminar 20120703
Six Apart
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
dynamis
Fetch apiについて
Fetch apiについて
Masakazu Muraoka
FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法
fisuda
Mozapps installがなくなったことへの不平不満
Mozapps installがなくなったことへの不平不満
Masakazu Muraoka
PHPの今とこれから2020
PHPの今とこれから2020
Rui Hirokawa
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
You_Kinjoh
HTML5から始まる技術革新
HTML5から始まる技術革新
Wakasa Masao
IETF89 HTTP関連WG報告 #isocjp
IETF89 HTTP関連WG報告 #isocjp
Kaoru Maeda
Getting Started .NET Core
Getting Started .NET Core
Yuta Matsumura
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
配布用Cacti running with cherokee
配布用Cacti running with cherokee
yut148atgmaildotcom
みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由
Masakazu Muraoka
FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?
Masakazu Muraoka
パンダの会 Html5概説
パンダの会 Html5概説
Masakazu Muraoka
Secret of Firefox
Secret of Firefox
dynamis
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
Html5 seminar 1_pac
Html5 seminar 1_pac
1PAC. INC.
Try Firefox OS
Try Firefox OS
dynamis
Similar a はじめてのUser-Agent文字列
(20)
Attractive HTML5
Attractive HTML5
Movable type seminar 20120703
Movable type seminar 20120703
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
Fetch apiについて
Fetch apiについて
FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法
Mozapps installがなくなったことへの不平不満
Mozapps installがなくなったことへの不平不満
PHPの今とこれから2020
PHPの今とこれから2020
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5から始まる技術革新
HTML5から始まる技術革新
IETF89 HTTP関連WG報告 #isocjp
IETF89 HTTP関連WG報告 #isocjp
Getting Started .NET Core
Getting Started .NET Core
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
配布用Cacti running with cherokee
配布用Cacti running with cherokee
みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由
FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?
パンダの会 Html5概説
パンダの会 Html5概説
Secret of Firefox
Secret of Firefox
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
Html5 seminar 1_pac
Html5 seminar 1_pac
Try Firefox OS
Try Firefox OS
Más de Kenta USAMI
5分でわかる静的解析入門
5分でわかる静的解析入門
Kenta USAMI
なんとかStormに負けたくないEmacs初級篇
なんとかStormに負けたくないEmacs初級篇
Kenta USAMI
人類の役に立たないDSL、そしていつからRubyが最高の言語だと錯覚してた? with PHP
人類の役に立たないDSL、そしていつからRubyが最高の言語だと錯覚してた? with PHP
Kenta USAMI
pixivとl10n/i18n
pixivとl10n/i18n
Kenta USAMI
Rubicureに学ぶメタプログラミング
Rubicureに学ぶメタプログラミング
Kenta USAMI
Accept-language
Accept-language
Kenta USAMI
php.js
php.js
Kenta USAMI
これからの名前の話をしよう
これからの名前の話をしよう
Kenta USAMI
学ばないDSL
学ばないDSL
Kenta USAMI
札幌F#勉強会とは何だったのか
札幌F#勉強会とは何だったのか
Kenta USAMI
tadsanとは誰か
tadsanとは誰か
Kenta USAMI
DTの異常な愛情 または私は如何にして心配するのを止めてWILLCOMを愛するようになったか
DTの異常な愛情 または私は如何にして心配するのを止めてWILLCOMを愛するようになったか
Kenta USAMI
PowerShell+Lisp = ? (第2回残パン会)
PowerShell+Lisp = ? (第2回残パン会)
Kenta USAMI
キャンプ後の生活の変化とモチベーションの変化について
キャンプ後の生活の変化とモチベーションの変化について
Kenta USAMI
関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』
Kenta USAMI
After Camp 2011『今日から始める函数型プログラミング』(内容無し)
After Camp 2011『今日から始める函数型プログラミング』(内容無し)
Kenta USAMI
黒歴史・闇RubyKaigi(美しいRubyと私 そして闇プログラミング)
黒歴史・闇RubyKaigi(美しいRubyと私 そして闇プログラミング)
Kenta USAMI
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Kenta USAMI
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
Kenta USAMI
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
Kenta USAMI
Más de Kenta USAMI
(20)
5分でわかる静的解析入門
5分でわかる静的解析入門
なんとかStormに負けたくないEmacs初級篇
なんとかStormに負けたくないEmacs初級篇
人類の役に立たないDSL、そしていつからRubyが最高の言語だと錯覚してた? with PHP
人類の役に立たないDSL、そしていつからRubyが最高の言語だと錯覚してた? with PHP
pixivとl10n/i18n
pixivとl10n/i18n
Rubicureに学ぶメタプログラミング
Rubicureに学ぶメタプログラミング
Accept-language
Accept-language
php.js
php.js
これからの名前の話をしよう
これからの名前の話をしよう
学ばないDSL
学ばないDSL
札幌F#勉強会とは何だったのか
札幌F#勉強会とは何だったのか
tadsanとは誰か
tadsanとは誰か
DTの異常な愛情 または私は如何にして心配するのを止めてWILLCOMを愛するようになったか
DTの異常な愛情 または私は如何にして心配するのを止めてWILLCOMを愛するようになったか
PowerShell+Lisp = ? (第2回残パン会)
PowerShell+Lisp = ? (第2回残パン会)
キャンプ後の生活の変化とモチベーションの変化について
キャンプ後の生活の変化とモチベーションの変化について
関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』
After Camp 2011『今日から始める函数型プログラミング』(内容無し)
After Camp 2011『今日から始める函数型プログラミング』(内容無し)
黒歴史・闇RubyKaigi(美しいRubyと私 そして闇プログラミング)
黒歴史・闇RubyKaigi(美しいRubyと私 そして闇プログラミング)
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
はじめてのUser-Agent文字列
1.
はじめてのUser-Agent文字列 うさみけんた@ぞ 2015年5月21日 pixiv Inc.
2.
お前誰よ • うさみけんた/tadsan/ぞ • 通りすがりのPHPer •
さいきんあまりRuby書いてない • すきなHTTPヘッダはAccept-Language
3.
pixiv.net touch.pixiv.net www.pixiv.net どうやって見分けるの?
4.
HTTP User-Agent Header
5.
Hi, I’m Mozilla/5.0 (iPhone;
CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/ 12A4345d Safari/600.1.4 iPhone 6 Plus
6.
Hi, I’m Mozilla/5.0 (Linux;
Android 4.4.2; GT- I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/ 28.0.1500.94 Mobile Safari/537.36 Android Browser
7.
Hi, I’m Mozilla/5.0 (Macintosh;
Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36 OS X Chrome 43
8.
Hi, I’m Mozilla/5.0 (Windows
NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/ 12.0 Windows 10 Edge
9.
超ざっくり用語集 HTTP… Webでデータをやりとりするルールのこと ブラウザとサーバーがやりとりする Chrome… グーグル社が開発したブラウザ Firefox…
モジラ財団が開発したブラウザ Opera… オペラ社が開発したブラウザ Safari… アップル社が開発したブラウザ
10.
超ざっくり用語集 NCSA Mosaic… 最初期のすごいブラウザ NetScape…
むかし人気だったブラウザ エンジン… ブラウザのコアのことだよ Mozilla… NetScapeのことだよ Internet Explorer… MS社が作ったブラウザ KHTML… KDEプロジェクトが作ったエンジン Gecko… モジラ財団が作ったエンジン WebKit… Apple社がKHTMLから派生したエンジン Blink… Google社がWebkitから派生したエンジン EdgeHTML… MS社の最新エンジン
11.
Hi, I’m Mozilla/5.0 (Windows
NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/ 12.0 Windows 10 Edge モジラだよ WKだよ KHTMLだよ Geckoぽいよ Chrome39だよ Webkit537ベースだよ
12.
Hi, I’m Mozilla/5.0 (Windows
NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/ 12.0 Windows 10 Edge モジラだよ WKだよ KHTMLだよ Geckoぽいよ Chrome39だよ Webkit537ベースだよ 結局おめーは誰なんだよ
13.
_人人人人人人人_ > 歴史的経緯 <  ̄Y^Y^Y^Y^Y^Y ̄
14.
地層のように積み重なった 呪詛のような歴史的経緯の山
15.
みんなブラウザ判定が好き • ProxyとかJavaScriptとかWebサーバーとか • 新参者のブラウザは互換性のためと称して、 自分の特徴は入れつつ誤認されたがる •
機能の互換性が十分ならばWin-Win(?) • その結果、最新ブラウザが赤の他人を 詐称し続ける悪循環… • 微妙な非互換でライブラリ作者が泣きを…
16.
Real World User-Agent
17.
よく来るBotと仲良しになる • Googlebot https://support.google.com/webmasters/answer/ 182072?hl=ja • Twitterbot https://dev.twitter.com/cards/getting-started •
bingbot http://www.bing.com/webmaster/help/which- crawlers-does-bing-use-8c184ec0
18.
PC版とスマートフォン版 • スマートフォンだったら、touch.pixiv.netに、 それ以外だったらwww.pixiv.netに飛ばせばえ えやん? • 「スマートフォンだったら」は容易ではない •
WindowsCE? BlackBerry? FirefoxOS? • Android/Windowsタブレットはどうするの? • ゲーム機は?
19.
状況を整理しよう • Android, iOSならtouch版に移動させる •
Mobileが含まれるか判定すると良いが、 古いAndroid端末には含まれにあので別途判定 • タブレット端末やゲーム機ではどちらを利用す るか好みが分かれるので、強制転送はかけない • 前回UserAgentの判定を調整したときには、 PC版とtouch版のどちらが好きな方からも 意見を頂戴した
20.
いろんなユーザーエージェント • Apache-HttpClient (いっぱい来る) •
JavaのHTTPライブラリだよ • PCサイトビューアー • フィーチャーフォンのブラウザだよ • テキストブラウザ • テキスト端末でWebを閲覧できるブラウザ
21.
PHP <?php function isMobile($UA) { return
(stripos($UA, 'mobile') !== false stripos($UA, 'android') !== false); } var_dump(isMobile($_SERVER['HTTP_USER_AGENT']));
22.
PHP <?php function isTouchDevice($UA) { return
(stripos($UA, 'nintendo') !== false || // 3DS, Wii stripos($UA, 'touch') !== false || // Win tablet stripos($UA, 'brew') !== false || // PCサイトビューアー stripos($UA, 'playstation') !== false // PSP, PSX ); } var_dump(isTouchDevice($_SERVER['HTTP_USER_AGENT']));
Descargar ahora