JP5779790B2 - Client estimation apparatus, client estimation method, and computer program - Google Patents

Client estimation apparatus, client estimation method, and computer program Download PDF

Info

Publication number
JP5779790B2
JP5779790B2 JP2011118084A JP2011118084A JP5779790B2 JP 5779790 B2 JP5779790 B2 JP 5779790B2 JP 2011118084 A JP2011118084 A JP 2011118084A JP 2011118084 A JP2011118084 A JP 2011118084A JP 5779790 B2 JP5779790 B2 JP 5779790B2
Authority
JP
Japan
Prior art keywords
http
client
attribute
header
rule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011118084A
Other languages
Japanese (ja)
Other versions
JP2012247919A (en
Inventor
真道 細田
真道 細田
忠弘 藤平
忠弘 藤平
陽介 仲野
陽介 仲野
西村 剛
剛 西村
正志 内條
正志 内條
博之 市川
博之 市川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone East Corp
Original Assignee
Nippon Telegraph and Telephone East Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone East Corp filed Critical Nippon Telegraph and Telephone East Corp
Priority to JP2011118084A priority Critical patent/JP5779790B2/en
Publication of JP2012247919A publication Critical patent/JP2012247919A/en
Application granted granted Critical
Publication of JP5779790B2 publication Critical patent/JP5779790B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Description

本発明は、端末装置から送信されるデータに基づいて、端末装置で動作しているHTTP(HyperText Transfer Protocol)クライアントの属性を推定する技術に関する。   The present invention relates to a technique for estimating an attribute of an HTTP (HyperText Transfer Protocol) client operating on a terminal device based on data transmitted from the terminal device.

従来、端末装置から送信されるHTTPリクエストの内容に基づいて、端末装置で動作しているHTTPクライアント(ユーザエージェントも含む。以下同様。)の属性を推定することが行われている。特許文献1に開示された技術は、HTTPリクエストに含まれるUser-Agentヘッダの内容が格納された環境変数HTTP_USER_AGENTに、ウェブブラウザ(HTTPクライアント)の種類及びバージョンと、クライアント端末で動作しているOS(Operating System)の種類及びバージョンが記載されていることを利用している。すなわち、特許文献1に開示されたサーバは、環境変数HTTP_USER_AGENTに記載されている上記情報を読み出すことによって、クライアント端末で動作しているウェブブラウザの種類及びバージョンと、クライアント端末で動作しているOSの種類及びバージョンとが推定される。この場合、ウェブブラウザの種類及びバージョンと、OSの種類及びバージョンが属性である。   Conventionally, based on the content of an HTTP request transmitted from a terminal device, an attribute of an HTTP client (including a user agent; the same applies hereinafter) operating on the terminal device has been estimated. The technology disclosed in Patent Literature 1 is based on the environment variable HTTP_USER_AGENT storing the contents of the User-Agent header included in the HTTP request, the type and version of the web browser (HTTP client), and the OS operating on the client terminal. The fact that the type and version of (Operating System) is described is used. That is, the server disclosed in Patent Document 1 reads out the information described in the environment variable HTTP_USER_AGENT, so that the type and version of the web browser operating on the client terminal and the OS operating on the client terminal Type and version are estimated. In this case, the type and version of the web browser and the type and version of the OS are attributes.

特開2000−10923号公報JP 2000-10923 A

しかしながら、User-Agentヘッダに記載されている情報が正確性に欠ける場合があるという問題があった。そのため、User-Agentヘッダの内容がそのまま格納された環境変数HTTP_USER_AGENTの情報のみに基づいて推定を行うと、誤った推定結果が得られる場合があった。
上記事情に鑑み、本発明は、HTTPリクエストの送信元の装置で動作しているHTTPクライアントの属性をより正確に推定する技術を提供することを目的としている。
However, there is a problem that information described in the User-Agent header may be inaccurate. For this reason, if the estimation is performed only based on the information of the environment variable HTTP_USER_AGENT in which the contents of the User-Agent header are stored as they are, an incorrect estimation result may be obtained.
In view of the above circumstances, an object of the present invention is to provide a technique for more accurately estimating an attribute of an HTTP client operating on a device that is an HTTP request transmission source.

本発明の一態様は、HTTPリクエストの記述の規則を、HTTPクライアントの属性毎に記憶する規則記憶部と、前記規則記憶部に記憶される規則と、端末装置から送信されたHTTPリクエストの記述と、に基づいて、前記端末装置におけるHTTPクライアントの属性を推定する推定部と、を備えるクライアント推定装置である。   According to one aspect of the present invention, a rule storage unit that stores an HTTP request description rule for each attribute of an HTTP client, a rule stored in the rule storage unit, a description of an HTTP request transmitted from a terminal device, And an estimation unit that estimates an attribute of an HTTP client in the terminal device.

本発明の一態様は、HTTPリクエストの記述の規則を、HTTPクライアントの属性毎に記憶する規則記憶部を備える情報処理装置が、前記規則記憶部に記憶される規則を読み出すステップと、前記情報処理装置が、読み出された前記規則と、端末装置から送信されたHTTPリクエストの記述と、に基づいて、前記端末装置におけるHTTPクライアントの属性を推定するステップと、を有するクライアント推定方法である。   According to one aspect of the present invention, there is provided an information processing apparatus including a rule storage unit that stores a rule for describing an HTTP request for each attribute of an HTTP client, and reading the rule stored in the rule storage unit; A device estimation method comprising: a step of estimating an attribute of an HTTP client in the terminal device based on the read rule and a description of an HTTP request transmitted from the terminal device.

本発明の一態様は、HTTPリクエストの記述の規則を、HTTPクライアントの属性毎に記憶する規則記憶部を備える情報処理装置に対し、前記規則記憶部に記憶される規則を読み出すステップと、読み出された前記規則と、端末装置から送信されたHTTPリクエストの記述と、に基づいて、前記端末装置におけるHTTPクライアントの属性を推定するステップと、を実行させるためのコンピュータプログラムである。   According to one aspect of the present invention, for an information processing apparatus including a rule storage unit that stores an HTTP request description rule for each attribute of an HTTP client, a step of reading the rule stored in the rule storage unit; And a step of estimating an attribute of an HTTP client in the terminal device based on the rule and the description of the HTTP request transmitted from the terminal device.

本発明により、HTTPリクエストの送信元の装置で動作しているHTTPクライアントの属性をより正確に推定することが可能となる。   According to the present invention, it is possible to more accurately estimate the attribute of an HTTP client that is operating in a device that is an HTTP request transmission source.

クライアント推定システムのシステム構成を表すシステム構成図である。It is a system configuration | structure figure showing the system configuration | structure of a client estimation system. HTTPサーバの機能構成の概略を示す図である。It is a figure which shows the outline of a function structure of an HTTP server. 応答内容テーブルの概略を示す図である。It is a figure which shows the outline of a response content table. 規則テーブルの具体例を示す図である。It is a figure which shows the specific example of a rule table. HTTPサーバの動作例を表すフローチャートである。It is a flowchart showing the operation example of an HTTP server.

図1は、クライアント推定システム1のシステム構成を表すシステム構成図である。クライアント推定システム1は、端末装置10、HTTPサーバ20を備える。端末装置10とHTTPサーバ20とは、ネットワーク30を介して互いに通信可能である。
端末装置10は、パーソナルコンピュータ、携帯電話、スマートフォン、テレビ受像機、ゲーム装置、プリンタ、複合機等の装置である。端末装置10ではOSが動作し、OS上でHTTPクライアントが動作している。HTTPクライアントとは、HTTPに従ってHTTPサーバと通信を行うアプリケーションのことである。HTTPクライアントの具体例として、ウェブブラウザがあり、他にもソフトウェアやファームウェアの更新システム、検索エンジン等が情報収集するために使うクローラ(ボット、ロボット、スパイダとも呼ばれる)等がある。端末装置10は、HTTPサーバ20に対してHTTPリクエストを送信し、HTTPサーバ20からHTTPレスポンスを受信する。
HTTPサーバ20は、端末装置10から送信されたHTTPリクエストに基づいて、端末装置10におけるHTTPクライアントの属性を推定する。属性とは、HTTPクライアントの種類及びバージョンと、OSの種類及びバージョンである。
FIG. 1 is a system configuration diagram illustrating a system configuration of the client estimation system 1. The client estimation system 1 includes a terminal device 10 and an HTTP server 20. The terminal device 10 and the HTTP server 20 can communicate with each other via the network 30.
The terminal device 10 is a device such as a personal computer, a mobile phone, a smartphone, a television receiver, a game device, a printer, or a multifunction device. In the terminal device 10, an OS is operating, and an HTTP client is operating on the OS. An HTTP client is an application that communicates with an HTTP server according to HTTP. A specific example of the HTTP client is a web browser, and other software and firmware update systems, crawlers (also called bots, robots, and spiders) used by search engines to collect information. The terminal device 10 transmits an HTTP request to the HTTP server 20 and receives an HTTP response from the HTTP server 20.
The HTTP server 20 estimates the attribute of the HTTP client in the terminal device 10 based on the HTTP request transmitted from the terminal device 10. The attributes are the type and version of the HTTP client and the type and version of the OS.

図2は、HTTPサーバ20の機能構成の概略を示す図である。HTTPサーバ20は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、プログラムを実行する。HTTPサーバ20は、プログラムの実行により、通信部201、応答内容記憶部202、応答部203、クライアント推定部40を備える装置として機能する。なお、HTTPサーバ20の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されても良い。プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されても良い。   FIG. 2 is a diagram showing an outline of a functional configuration of the HTTP server 20. The HTTP server 20 includes a CPU (Central Processing Unit), a memory, an auxiliary storage device, and the like connected by a bus, and executes a program. The HTTP server 20 functions as a device including a communication unit 201, a response content storage unit 202, a response unit 203, and a client estimation unit 40 by executing a program. Note that all or part of the functions of the HTTP server 20 may be realized by using hardware such as an application specific integrated circuit (ASIC), a programmable logic device (PLD), and a field programmable gate array (FPGA). The program may be recorded on a computer-readable recording medium. The computer-readable recording medium is, for example, a portable medium such as a flexible disk, a magneto-optical disk, a ROM, a CD-ROM, or a storage device such as a hard disk built in the computer system. The program may be transmitted via a telecommunication line.

通信部201は、ネットワーク30を介して端末装置10と通信する。通信部201は、HTTPリクエストを受信すると、受信したHTTPリクエストをクライアント推定部40及び応答部203に渡す。
応答内容記憶部202は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。応答内容記憶部203は、応答内容テーブルを記憶する。図3は、応答内容テーブルの概略を示す図である。応答内容テーブルは、HTTPリクエストの条件と、クライアント推定部40の推定結果と、応答内容とを対応付けたテーブルである。推定結果として、応答内容テーブルは、HTTPクライアントの種類、HTTPクライアントのバージョン、OSの種類、OSのバージョンの項目を有する。図3の場合、受信されたHTTPリクエストの内容が条件R1に一致し、推定されたHTTPクライアントの種類、HTTPクライアントのバージョン、OSの種類、OSのバージョンがそれぞれm1、vm1、n1、vn1である場合には、応答内容がC1となる。
応答内容テーブルにおけるHTTPリクエストの条件として以下のようなものがある。例えば、条件としてHTTPリクエストに含まれるリクエストURI(Uniform Resource Identifier)を設定してもよい。この場合、リクエストURIとHTTPクライアントの組み合わせ毎に応答内容を定めることができる。また、条件としてHTTPリクエストに含まれることがあるAccept-Languageヘッダの内容を設定してもよい。この場合、Accept-Language ヘッダの内容に応じて日本語や英語といった言語毎に、HTTPクライアント毎の応答内容を定めることができる。また、その他のヘッダ等、HTTPリクエストの内容を条件に指定し、その条件毎に、HTTPクライアント毎の応答内容を定めることもできる。
The communication unit 201 communicates with the terminal device 10 via the network 30. When the communication unit 201 receives the HTTP request, the communication unit 201 passes the received HTTP request to the client estimation unit 40 and the response unit 203.
The response content storage unit 202 is configured using a storage device such as a magnetic hard disk device or a semiconductor storage device. The response content storage unit 203 stores a response content table. FIG. 3 is a diagram showing an outline of the response content table. The response content table is a table in which the HTTP request condition, the estimation result of the client estimation unit 40, and the response content are associated with each other. As an estimation result, the response content table includes items of an HTTP client type, an HTTP client version, an OS type, and an OS version. In the case of FIG. 3, the content of the received HTTP request matches the condition R1, and the estimated HTTP client type, HTTP client version, OS type, and OS version are m1, vm1, n1, and vn1, respectively. In this case, the response content is C1.
The HTTP request conditions in the response content table include the following. For example, a request URI (Uniform Resource Identifier) included in the HTTP request may be set as a condition. In this case, the response content can be determined for each combination of the request URI and the HTTP client. Moreover, you may set the content of the Accept-Language header which may be contained in an HTTP request as conditions. In this case, the response content for each HTTP client can be determined for each language such as Japanese or English according to the content of the Accept-Language header. In addition, the contents of the HTTP request such as other headers can be specified as conditions, and the response contents for each HTTP client can be determined for each condition.

応答内容テーブルにおける応答内容の具体例として以下のようなものがある。例えば、応答内容として、端末装置10に送信するコンテンツの識別情報が設定されても良い。この場合、同じHTTPリクエストの条件であっても、属性に応じて異なるコンテンツが送信される。また、原則として全てのHTTPクライアントに対して同じコンテンツが送信されるものの、特定の属性のHTTPクライアントに対してのみ他とは異なるコンテンツが送信されるように設定することも可能である。また、応答内容として特定のウェブページへのリダイレクトを送信することが設定されても良い。この場合、特定の属性のHTTPクライアントに対して、特定のウェブページへのリダイレクトが送信されるように設定することも可能である。   Specific examples of response contents in the response contents table include the following. For example, content identification information to be transmitted to the terminal device 10 may be set as the response content. In this case, different contents are transmitted according to attributes even under the same HTTP request conditions. Further, in principle, the same content is transmitted to all HTTP clients, but it is also possible to set so that different content is transmitted only to HTTP clients having specific attributes. In addition, transmission of a redirect to a specific web page may be set as a response content. In this case, it is also possible to set so that a redirect to a specific web page is transmitted to an HTTP client having a specific attribute.

図2に戻って説明を続ける。応答部203は、HTTPリクエストの条件と、クライアント推定部40による推定結果とに応じて、応答内容テーブルを参照することによって応答内容を決定する。応答部203は、決定した応答内容に基づいてHTTPレスポンスを生成する。応答部203は、通信部201を介してHTTPリクエストの送信元にHTTPレスポンスを送信する。   Returning to FIG. 2, the description will be continued. The response unit 203 determines the response content by referring to the response content table according to the HTTP request condition and the estimation result by the client estimation unit 40. The response unit 203 generates an HTTP response based on the determined response content. The response unit 203 transmits an HTTP response to the transmission source of the HTTP request via the communication unit 201.

応答部203が生成するHTTPレスポンスの具体例について説明する。例えば、応答内容テーブルの応答内容としてコンテンツの識別情報が設定されている場合、応答部203は、識別情報によって表されるコンテンツを端末装置10に出力させるためのHTTPレスポンスを生成する。例えば、識別情報によって表されるコンテンツがウェブページである場合には、応答部203は、ウェブページを表示させるためのHTML(HyperText Markup Language)データを生成しても良い。応答内容として、特定のウェブページへのリダイレクトを送信することが設定されている場合、応答部203は、特定のウェブページへのリダイレクトのコードを含むHTTPレスポンスを生成しても良い。   A specific example of the HTTP response generated by the response unit 203 will be described. For example, when content identification information is set as the response content in the response content table, the response unit 203 generates an HTTP response for causing the terminal device 10 to output the content represented by the identification information. For example, when the content represented by the identification information is a web page, the response unit 203 may generate HTML (HyperText Markup Language) data for displaying the web page. When the response content is set to transmit a redirect to a specific web page, the response unit 203 may generate an HTTP response including a redirect code to the specific web page.

クライアント推定部40は、HTTPリクエストの内容に基づいて、HTTPリクエストの送信元である端末装置10で動作しているHTTPクライアントの属性を推定する。クライアント推定部40は、規則記憶部402、推定部403を備える。
規則記憶部402は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。規則記憶部402は、HTTPクライアントの属性毎に規則テーブルを記憶する。規則テーブルは、HTTPクライアントの属性毎に、そのHTTPクライアントから送信されるHTTPリクエストの記述の規則を表す。
Based on the content of the HTTP request, the client estimation unit 40 estimates the attribute of the HTTP client that is operating in the terminal device 10 that is the transmission source of the HTTP request. The client estimation unit 40 includes a rule storage unit 402 and an estimation unit 403.
The rule storage unit 402 is configured using a storage device such as a magnetic hard disk device or a semiconductor storage device. The rule storage unit 402 stores a rule table for each attribute of the HTTP client. The rule table represents rules for describing an HTTP request transmitted from an HTTP client for each attribute of the HTTP client.

図4は、規則テーブルの具体例を示す図である。図4に示す規則テーブルには、HTTPクライアントの具体例としてブラウザに関する情報が記録されている。図4の規則テーブルは、ブラウザ(HTTPクライアント)の種類が“xxx”、ブラウザのバージョンが“1”、OSの種類が“yyy”、OSのバージョンが“1”である属性のブラウザから送信されるHTTPリクエストの記述の規則を表す。ブラウザの種類、ブラウザのバージョン、OSの種類、OSのバージョン毎に規則テーブルが設けられる。   FIG. 4 is a diagram illustrating a specific example of the rule table. In the rule table shown in FIG. 4, information related to the browser is recorded as a specific example of the HTTP client. The rule table shown in FIG. 4 is transmitted from a browser having attributes of “xxx” for the browser (HTTP client), “1” for the browser, “yyy” for the OS, and “1” for the OS. This describes the rules for describing HTTP requests. A rule table is provided for each browser type, browser version, OS type, and OS version.

必ず存在するヘッダの欄に設定されている値は、上記属性のブラウザから送信されるHTTPリクエストに必ず記載されているヘッダの項目の名前を示す。図4の規則テーブルに定義された属性のブラウザから送信されるHTTPリクエストには必ず“Accept”、“Accept-Language”、“Accept-Encoding”、“User-Agent”、“Host”、“Connection”の項目が記述されている。   The value set in the header field that always exists indicates the name of the header item that is always described in the HTTP request transmitted from the browser having the attribute. The HTTP request sent from the browser having the attributes defined in the rule table of FIG. 4 must be “Accept”, “Accept-Language”, “Accept-Encoding”, “User-Agent”, “Host”, “Connection”. The items are described.

必ず存在しないヘッダの欄に設定されている値は、上記属性のブラウザから送信されるHTTPリクエストに必ず記載されていない項目の名前を示す。図4の規則テーブルに定義された属性のブラウザから送信されるHTTPリクエストには必ず“Accept-Charset”、“Date”の項目が記述されていない。   The value set in the header field that does not necessarily exist indicates the name of an item that is not necessarily described in the HTTP request transmitted from the browser having the attribute. The items “Accept-Charset” and “Date” are not always described in the HTTP request transmitted from the browser having the attributes defined in the rule table of FIG.

ヘッダの順番の欄に設定されている値は、上記属性のブラウザから送信されるHTTPリクエストに記述されている項目の順番を示す。図4の規則テーブルに定義された属性のブラウザから送信されるHTTPリクエストには“Accept”、“Accept-Language”、“Accept-Encoding”、“If-Modified-Since”、“If-None-Match”、“User-Agent”、“Host”、“Connection”の項目がこの順番で記述されている。この欄に定義されている項目と項目との順番が守られていれば、その間にこの欄に定義されていない他の項目が入ったとしても、あるいはこの欄に定義されている項目が無かったとしても、規則を満たしたこととなる。例えば、“Accept”と“Accept-Language”との間に、この欄に定義されていない他の項目が存在したとしても、“Accept”の後に“Accept-Language”が記述されている限りは、規則が満たされている。例えば、この欄に定義されている“If-Modified-Since”、“If-None-Match”が存在しなくても、存在している項目が定義の順番通り記述されている限りは、規則が満たされている。
例えば、HTTPリクエストに“Accept”、“Keep-Alive”、“Accept-Language”、“Accept-Encoding”、“User-Agent”、“Host”、“Connection”という順番でヘッダが記述されていた場合について説明する。この場合、“Accept”と“Accept-Language”の間に、この欄に定義されていない項目“Keep-Alive”が挿入されている。さらに、この欄で定義されている“If-Modified-Since”、“If-None-Match”が存在しない。しかしながら、その他の項目は定義の順番通り記述されているので、規則は満たされている。
個別条件の欄に設定されている事項は、各項目に設定された具体的な値に関する条件である。例えば、HTTPリクエストの”Accept”の項目に設定されている値の末尾が「,*/*」と一致すれば、図4に示される規則を満たす。
The value set in the header order column indicates the order of items described in the HTTP request transmitted from the browser having the attribute. The HTTP request transmitted from the browser having the attributes defined in the rule table of FIG. 4 includes “Accept”, “Accept-Language”, “Accept-Encoding”, “If-Modified-Since”, “If-None-Match”. "," User-Agent "," Host ", and" Connection "items are described in this order. If the order of the items defined in this column is kept, even if there are other items not defined in this column between them, or there are no items defined in this column Even so, the rules were met. For example, even if there are other items not defined in this field between “Accept” and “Accept-Language”, as long as “Accept-Language” is described after “Accept” Rules are met. For example, even if “If-Modified-Since” and “If-None-Match” defined in this column do not exist, the rules are not limited as long as the existing items are described in the order of definition. be satisfied.
For example, when headers are described in the order of "Accept", "Keep-Alive", "Accept-Language", "Accept-Encoding", "User-Agent", "Host", "Connection" in the HTTP request Will be described. In this case, an item “Keep-Alive” not defined in this column is inserted between “Accept” and “Accept-Language”. Furthermore, “If-Modified-Since” and “If-None-Match” defined in this column do not exist. However, since the other items are described in the order of definition, the rules are satisfied.
Items set in the individual condition column are conditions relating to specific values set in each item. For example, the rule shown in FIG. 4 is satisfied if the end of the value set in the “Accept” item of the HTTP request matches “, * / *”.

推定部403は、規則記憶部402に記憶されている規則テーブルに基づいて、受信されたHTTPリクエストの送信元である端末装置10で動作しているHTTPクライアントの属性を推定する。例えば、図4に示される規則テーブルに示された規則を全て満たすHTTPリクエストが受信された場合には、推定部403は、送信元のHTTPクライアントの属性について以下のように推定する。ブラウザ(HTTPクライアント)の種類は“xxx”、ブラウザのバージョンは“1”、OSの種類は“yyy”、OSのバージョンは“1”。   Based on the rule table stored in the rule storage unit 402, the estimation unit 403 estimates the attribute of the HTTP client operating in the terminal device 10 that is the transmission source of the received HTTP request. For example, when an HTTP request that satisfies all the rules shown in the rule table shown in FIG. 4 is received, the estimation unit 403 estimates the attribute of the transmission source HTTP client as follows. The browser (HTTP client) type is “xxx”, the browser version is “1”, the OS type is “yyy”, and the OS version is “1”.

以下、推定部403について詳細に説明する。推定部403は、項目判定部404、順序判定部405、個別条件判定部406を備える。
項目判定部404は、ある属性では必ず記述されている項目の有無と、ある属性では必ず記述されていない項目の有無と、に基づいて、HTTPリクエストの送信元である端末装置10で動作しているHTTPクライアントの属性の候補(属性候補)を判定する。具体的には以下の通りである。項目判定部404は、規則テーブルの必ず存在するヘッダの欄と、必ず存在しないヘッダの欄とに基づいて、規則テーブルの規則を満たすか否か全ての規則テーブルについて判定する。規則を満たす場合、項目判定部404は、その規則テーブルに応じた属性を、属性候補と判定する。一方、規則を満たさない場合、項目判定部404は、その規則テーブルに応じた属性を、属性候補から外す。なお、規則を満たす場合とは、規則テーブルの必ず存在するヘッダに規定されている項目が全てHTTPリクエストに記述されており、必ず存在しないヘッダに規定されている項目が全てHTTPリクエストに記述されていない場合である。
Hereinafter, the estimation unit 403 will be described in detail. The estimation unit 403 includes an item determination unit 404, an order determination unit 405, and an individual condition determination unit 406.
The item determination unit 404 operates on the terminal device 10 that is the transmission source of the HTTP request based on the presence / absence of an item that is always described in a certain attribute and the presence / absence of an item that is not necessarily described in a certain attribute. HTTP client attribute candidates (attribute candidates) are determined. Specifically, it is as follows. The item determination unit 404 determines whether or not the rules in the rule table are satisfied based on the header fields that always exist in the rule table and the header fields that do not necessarily exist. If the rule is satisfied, the item determination unit 404 determines that the attribute corresponding to the rule table is an attribute candidate. On the other hand, when the rule is not satisfied, the item determination unit 404 removes the attribute corresponding to the rule table from the attribute candidates. Note that when the rule is satisfied, all items specified in the header of the rule table that are always present are described in the HTTP request, and all items specified in the header that are not necessarily present are described in the HTTP request. This is the case.

順序判定部405は、記述された項目の順序に基づいて属性候補を判定する。具体的には以下の通りである。順序判定部405は、規則テーブルのヘッダの順番の欄に基づいて、規則テーブルの規則を満たすか否か、項目判定部404で属性候補と判定された全ての規則テーブルについて判定する。規則を満たす場合、順序判定部405は、その規則テーブルに応じた属性を、属性候補と判定する。一方、規則を満たさない場合、順序判定部405は、その規則テーブルに応じた属性を、属性候補から外す。   The order determination unit 405 determines attribute candidates based on the order of the described items. Specifically, it is as follows. The order determination unit 405 determines whether or not the rule of the rule table is satisfied based on the order column of the header of the rule table for all rule tables determined by the item determination unit 404 as attribute candidates. When the rule is satisfied, the order determination unit 405 determines that the attribute corresponding to the rule table is an attribute candidate. On the other hand, when the rule is not satisfied, the order determination unit 405 removes the attribute corresponding to the rule table from the attribute candidates.

個別条件判定部406は、ヘッダの項目の個別条件に基づいて、属性候補の中から属性を推定する。具体的には以下の通りである。個別条件判定部406は、規則テーブルの個別条件の欄に基づいて、規則テーブルの規則を満たすか否か、順序判定部405で属性候補と判定された全ての規則テーブルについて判定する。規則を満たす場合、個別条件判定部406は、その規則テーブルに応じた属性を、HTTPクライアントの属性と推定する。一方、規則を満たさない場合、個別条件判定部406は、その規則テーブルに応じた属性を、HTTPクライアントの属性ではないと推定する。個別条件判定部406は、推定結果を、クライアント推定部40の推定結果として応答部203に出力する。   The individual condition determination unit 406 estimates an attribute from the attribute candidates based on the individual condition of the header item. Specifically, it is as follows. The individual condition determination unit 406 determines whether or not the rules in the rule table are satisfied based on the individual condition column of the rule table for all rule tables determined as attribute candidates by the order determination unit 405. When the rule is satisfied, the individual condition determination unit 406 estimates an attribute corresponding to the rule table as an attribute of the HTTP client. On the other hand, if the rule is not satisfied, the individual condition determination unit 406 estimates that the attribute corresponding to the rule table is not an HTTP client attribute. The individual condition determination unit 406 outputs the estimation result to the response unit 203 as the estimation result of the client estimation unit 40.

図5は、HTTPサーバ20の動作例を表すフローチャートである。まず、通信部201は、HTTPリクエスト以外のデータを受信した場合には(ステップS101)、受信したデータを応答部203に渡す。一方、通信部201は、HTTPリクエストを受信すると(ステップS101−YES)、受信したHTTPリクエストをクライアント推定部40に渡す。項目判定部404は、受信したHTTPリクエストについて、必須項目(必ず存在するヘッダの項目、必ず存在しないヘッダの項目)に基づいて、HTTPクライアントの属性候補を判定する(ステップS102)。順序判定部405は、受信したHTTPリクエストについて、項目の順序(ヘッダの順番)に基づいて、HTTPクライアントの属性候補を判定する(ステップS103)。個別条件判定部406は、受信したHTTPリクエストについて、個別条件に基づいて、HTTPクライアントの属性候補の中から属性を推定する(ステップS104)。そして、個別条件判定部406は、推定結果を応答部203に出力する(ステップS105)。   FIG. 5 is a flowchart showing an operation example of the HTTP server 20. First, when receiving data other than an HTTP request (step S101), the communication unit 201 passes the received data to the response unit 203. On the other hand, when the communication unit 201 receives an HTTP request (step S101—YES), the communication unit 201 passes the received HTTP request to the client estimation unit 40. The item determination unit 404 determines an HTTP client attribute candidate for the received HTTP request based on required items (header items that are always present and header items that are not necessarily present) (step S102). The order determination unit 405 determines HTTP client attribute candidates for the received HTTP request based on the order of items (header order) (step S103). The individual condition determination unit 406 estimates an attribute from the HTTP client attribute candidates for the received HTTP request based on the individual condition (step S104). Then, the individual condition determining unit 406 outputs the estimation result to the response unit 203 (step S105).

応答部203は、応答内容テーブルを参照し、受信されたHTTPリクエストの条件と、クライアント推定部40による推定結果と、に基づいて応答内容を決定する(ステップS106)。応答部203は、決定した応答内容に基づいて、HTTPレスポンスを生成する(ステップS107)。そして、応答部203は、生成したHTTPレスポンスを、通信部201を介して端末装置10へ送信する(ステップS108)。   The response unit 203 refers to the response content table, and determines the response content based on the condition of the received HTTP request and the estimation result by the client estimation unit 40 (step S106). The response unit 203 generates an HTTP response based on the determined response content (step S107). And the response part 203 transmits the produced | generated HTTP response to the terminal device 10 via the communication part 201 (step S108).

このように構成されたHTTPサーバ40では、HTTPクライアントの属性毎に固有のHTTPリクエストの記述の規則に基づいて、HTTPクライアントの属性が判定される。このHTTPリクエストの記述の規則にはUser-Agent ヘッダ以外の規則も含まれている。そのため、たとえUser-Agentヘッダに記載された情報に誤りがあったとしても、HTTPクライアントの属性をより正確に推定することが可能となる。   In the HTTP server 40 configured as described above, the HTTP client attribute is determined based on the HTTP request description rule specific to each HTTP client attribute. The rules for describing the HTTP request include rules other than the User-Agent header. Therefore, even if there is an error in the information described in the User-Agent header, it is possible to estimate the HTTP client attribute more accurately.

また、規則は具体的に必須項目と、項目の記述の順序と、個別条件との三つの種類の規則で構成される。そのため、いずれか一つの規則のみに基づいて推定を行うよりもより正確な推定を行うことが可能となる。
また、推定結果に応じた応答内容に基づいてHTTPレスポンスが生成される。そのため、端末装置10で動作しているHTTPクライアントの属性に応じた適切なHTTPレスポンスを端末装置10へ送信することが可能となる。
Further, the rules are specifically composed of three types of rules: essential items, order of description of items, and individual conditions. Therefore, it is possible to perform more accurate estimation than performing estimation based on only one of the rules.
Further, an HTTP response is generated based on the response content corresponding to the estimation result. Therefore, it is possible to transmit an appropriate HTTP response corresponding to the attribute of the HTTP client operating on the terminal device 10 to the terminal device 10.

<変形例>
端末装置10及びHTTPサーバ20は、HTTPのみならず、HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)で通信しても良い。
推定部403は、項目判定部404、順序判定部405、個別条件判定部406のうち、いずれか一つ又は二つのみによって構成されても良い。
<Modification>
The terminal device 10 and the HTTP server 20 may communicate not only by HTTP but also by HTTPS (Hypertext Transfer Protocol over Secure Socket Layer).
The estimation unit 403 may be configured by only one or two of the item determination unit 404, the order determination unit 405, and the individual condition determination unit 406.

項目判定部404、順序判定部405、個別条件判定部406の処理の順序は、図5のフローチャートに示す順序に限定される必要は無い。いずれの順序の場合も、最初に処理をする機能部は全ての属性から属性候補を絞り、次に処理をする機能部は属性候補をさらに絞り、最後に処理をする機能部は絞られた属性候補の中から属性を推定する。また、上述したように推定部403は、項目判定部404、順序判定部405、個別条件判定部406のうち、いずれか一つ又は二つのみによって推定部403が構成される場合の処理の順序も、適宜設計される。
属性は、HTTPクライアントの種類及びバージョンと、端末装置10で動作しているOSの種類及びバージョンとの全てを含むのではなく、これらのうちいずれか一つ又は複数の組み合わせであっても良い。
The processing order of the item determination unit 404, the order determination unit 405, and the individual condition determination unit 406 need not be limited to the order shown in the flowchart of FIG. In any order, the functional unit that processes first narrows down the attribute candidates from all attributes, the functional unit that processes next further narrows down the attribute candidates, and the functional unit that processes last narrows down the attribute. Estimate attributes from candidates. In addition, as described above, the estimation unit 403 is an order of processing when the estimation unit 403 is configured by only one or two of the item determination unit 404, the order determination unit 405, and the individual condition determination unit 406. Is also designed as appropriate.
The attribute does not include all of the type and version of the HTTP client and the type and version of the OS operating on the terminal device 10, but may be any one or a combination of these.

クライアント推定部40は、HTTPサーバ20ではなく、他の装置に設けられても良い。
例えば、クライアント推定部40は、ネットワーク30に設置された中継装置に設けられても良い。この場合、中継装置は以下のように動作しても良い。例えば、中継装置は、属性毎にHTTPリクエストを異なるネットワークへ転送しても良い。例えば、中継装置は、特定の属性によるHTTPリクエストのみを転送し、他の属性によるHTTPリクエストを廃棄しても良い。例えば、中継装置は、特定の属性によるHTTPリクエストのみをネットワークから遮断し、他の属性によるHTTPリクエストを遮断しなくても良い。例えば、中継装置は、特定の属性によるHTTPリクエストが受信された場合に、ネットワーク30の管理者に警告を発しても良い。
The client estimation unit 40 may be provided in another device instead of the HTTP server 20.
For example, the client estimation unit 40 may be provided in a relay device installed in the network 30. In this case, the relay device may operate as follows. For example, the relay device may transfer an HTTP request to a different network for each attribute. For example, the relay apparatus may transfer only an HTTP request with a specific attribute and discard an HTTP request with another attribute. For example, the relay device may block only an HTTP request with a specific attribute from the network and may not block an HTTP request with another attribute. For example, the relay device may issue a warning to the administrator of the network 30 when an HTTP request with a specific attribute is received.

例えば、クライアント推定部40は、端末装置10とHTTPサーバとの間に設けられたプロキシサーバ(Proxy Server)に設けられても良い。この場合、プロキシサーバは以下のように動作しても良い。例えば、プロキシサーバは、属性毎に異なるHTTPサーバへプロキシしても良い。例えば、プロキシサーバは、特定の属性によるHTTPリクエストのみをプロキシしても良い。例えば、プロキシサーバは、特定の属性によるHTTPリクエストのみプロキシせず、エラー画面などの所定のコンテンツをHTTPレスポンスとして返信しても良い。例えば、プロキシサーバは、特定の属性によるHTTPリクエストのみ特定のウェブページへリダイレクトさせるHTTPレスポンスを返送しても良い。例えば、プロキシサーバは、特定の属性によるHTTPリクエストが受信された場合に、プロキシサーバの管理者に警告を発しても良い。なお、プロキシサーバは、端末装置10とHTTPサーバとの間に一段設けられても良いし、多段設けられても良い。   For example, the client estimation unit 40 may be provided in a proxy server (Proxy Server) provided between the terminal device 10 and the HTTP server. In this case, the proxy server may operate as follows. For example, the proxy server may proxy to a different HTTP server for each attribute. For example, the proxy server may proxy only HTTP requests with specific attributes. For example, the proxy server may return only predetermined content such as an error screen as an HTTP response without proxying only an HTTP request with a specific attribute. For example, the proxy server may return an HTTP response that redirects only an HTTP request with a specific attribute to a specific web page. For example, the proxy server may issue a warning to the administrator of the proxy server when an HTTP request with a specific attribute is received. One proxy server may be provided between the terminal device 10 and the HTTP server, or multiple proxy servers may be provided.

以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。   The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes designs and the like that do not depart from the gist of the present invention.

1…クライアント推定システム, 10…端末装置, 20…HTTPサーバ, 30…ネットワーク, 201…通信部, 202…応答内容記憶部, 203…応答部, 40…クライアント推定部, 402…規則テーブル記憶部, 403…推定部, 404…項目判定部, 405…順序判定部, 406…個別条件判定部 DESCRIPTION OF SYMBOLS 1 ... Client estimation system, 10 ... Terminal device, 20 ... HTTP server, 30 ... Network, 201 ... Communication part, 202 ... Response content storage part, 203 ... Response part, 40 ... Client estimation part, 402 ... Rule table storage part, 403 ... Estimation section, 404 ... Item determination section, 405 ... Order determination section, 406 ... Individual condition determination section

Claims (3)

HTTPリクエストの記述の規則を、HTTPクライアントの属性毎に記憶する規則記憶部と、
前記規則記憶部に記憶される規則と、端末装置から送信されたHTTPリクエストの記述と、に基づいて、前記端末装置におけるHTTPクライアントの属性を推定する推定部と、
を備え
前記HTTPリクエストの記述の規則は、前記HTTPクライアントから送信されるHTTPリクエストに必ず存在するヘッダと、必ず存在しないヘッダと、ヘッダの記述の順番と、に関する規則のうちいずれか一つ又は複数を含み、
前記ヘッダは、User-Agentヘッダと、User-Agentヘッダ以外のヘッダとを含む、クライアント推定装置。
A rule storage unit that stores rules for describing HTTP requests for each attribute of the HTTP client;
An estimation unit for estimating an attribute of an HTTP client in the terminal device based on the rule stored in the rule storage unit and a description of an HTTP request transmitted from the terminal device;
Equipped with a,
The rules for describing the HTTP request include one or more of rules regarding headers that are always present in HTTP requests transmitted from the HTTP client, headers that are not necessarily present, and the order of header descriptions. ,
The client estimation apparatus , wherein the header includes a User-Agent header and a header other than the User-Agent header .
HTTPリクエストの記述の規則を、HTTPクライアントの属性毎に記憶する規則記憶部を備える情報処理装置が、前記規則記憶部に記憶される規則を読み出すステップと、
前記情報処理装置が、読み出された前記規則と、端末装置から送信されたHTTPリクエストの記述と、に基づいて、前記端末装置におけるHTTPクライアントの属性を推定するステップと、
を有し、
前記HTTPリクエストの記述の規則は、前記HTTPクライアントから送信されるHTTPリクエストに必ず存在するヘッダと、必ず存在しないヘッダと、ヘッダの記述の順番と、に関する規則のうちいずれか一つ又は複数を含み、
前記ヘッダは、User-Agentヘッダと、User-Agentヘッダ以外のヘッダとを含む、クライアント推定方法。
An information processing apparatus comprising a rule storage unit that stores a rule for describing an HTTP request for each attribute of an HTTP client, and reading out the rule stored in the rule storage unit;
The information processing device estimating an attribute of an HTTP client in the terminal device based on the read rule and a description of an HTTP request transmitted from the terminal device;
Have
The rules for describing the HTTP request include one or more of rules regarding headers that are always present in HTTP requests transmitted from the HTTP client, headers that are not necessarily present, and the order of header descriptions. ,
The client estimation method , wherein the header includes a User-Agent header and a header other than the User-Agent header .
HTTPリクエストの記述の規則を、HTTPクライアントの属性毎に記憶する規則記憶部を備える情報処理装置に対し、
前記規則記憶部に記憶される規則を読み出すステップと、
読み出された前記規則と、端末装置から送信されたHTTPリクエストの記述と、に基づいて、前記端末装置におけるHTTPクライアントの属性を推定するステップと、
を有し、
前記HTTPリクエストの記述の規則は、前記HTTPクライアントから送信されるHTTPリクエストに必ず存在するヘッダと、必ず存在しないヘッダと、ヘッダの記述の順番と、に関する規則のうちいずれか一つ又は複数を含み、
前記ヘッダは、User-Agentヘッダと、User-Agentヘッダ以外のヘッダとを含む、クライアント推定方法を実行させるためのコンピュータプログラム。
For an information processing apparatus including a rule storage unit that stores HTTP request description rules for each attribute of an HTTP client,
Reading a rule stored in the rule storage unit;
Estimating an attribute of an HTTP client in the terminal device based on the read rule and a description of an HTTP request transmitted from the terminal device;
Have
The rules for describing the HTTP request include one or more of rules regarding headers that are always present in HTTP requests transmitted from the HTTP client, headers that are not necessarily present, and the order of header descriptions. ,
A computer program for executing a client estimation method , wherein the header includes a User-Agent header and a header other than the User-Agent header .
JP2011118084A 2011-05-26 2011-05-26 Client estimation apparatus, client estimation method, and computer program Active JP5779790B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011118084A JP5779790B2 (en) 2011-05-26 2011-05-26 Client estimation apparatus, client estimation method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011118084A JP5779790B2 (en) 2011-05-26 2011-05-26 Client estimation apparatus, client estimation method, and computer program

Publications (2)

Publication Number Publication Date
JP2012247919A JP2012247919A (en) 2012-12-13
JP5779790B2 true JP5779790B2 (en) 2015-09-16

Family

ID=47468323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011118084A Active JP5779790B2 (en) 2011-05-26 2011-05-26 Client estimation apparatus, client estimation method, and computer program

Country Status (1)

Country Link
JP (1) JP5779790B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6331411B2 (en) * 2014-01-20 2018-05-30 凸版印刷株式会社 Information management server, information providing system, information providing method, and information management program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407351B2 (en) * 2009-11-25 2013-03-26 Nokia Corporation Method and apparatus for ensuring transport of user agent information
JP4964338B2 (en) * 2011-02-04 2012-06-27 株式会社三菱東京Ufj銀行 User confirmation apparatus, method and program

Also Published As

Publication number Publication date
JP2012247919A (en) 2012-12-13

Similar Documents

Publication Publication Date Title
US8321502B2 (en) Method for optimizing a web content proxy server and devices thereof
US10498736B2 (en) Third party program integrity and integration control in web based applications
US11216612B2 (en) Size-optimized data interchange method and system
US9871850B1 (en) Enhanced browsing using CDN routing capabilities
US20030236883A1 (en) Proxy server apparatus and method for providing service using the same
EP2732385A1 (en) Methods for facilitating web page image hotspots and devices thereof
US9473592B2 (en) Methods for optimizing a web content proxy server and devices thereof
US9785721B2 (en) System and method for programmatically creating resource locators
EP2787454A1 (en) Methods for optimizing a web content proxy server and devices thereof
US9400547B2 (en) Processing device and method thereof
JP6381426B2 (en) Information processing apparatus, control method, and program
JP5779790B2 (en) Client estimation apparatus, client estimation method, and computer program
JP2016144186A (en) Communication information controller, relay system, communication information control method, and communication information control program
US20190318036A1 (en) Topic Based Publish and Parametric Subscribe Pattern
EP2868069B1 (en) Processing requests
Zheng et al. Qos evaluation of web services
CN115277383B (en) Log generation method, device, electronic equipment and computer readable storage medium
JP2010181946A (en) Communication system, terminal equipment, content obtaining method, and program
KR101775324B1 (en) Method for handling removal of specific node in heap which includes at least one node and computing apparatus using the same
JP6350235B2 (en) Information processing apparatus, information processing apparatus control method, and information processing apparatus control program
JP2013145487A (en) Data transfer device and data processing system
Dominte Introduction to the Web
JP2015210785A (en) Communication control device, communication control method, and program
US20160036680A1 (en) Packet monitoring method, packet monitoring apparatus, and storage medium
KR20170097459A (en) Communication apparatus, network apparatus for transmitting web information in identifier/locator separation network and method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150413

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150616

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150619

R150 Certificate of patent or registration of utility model

Ref document number: 5779790

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250