2018년 1월 4일 목요일

User Agent Profile의 Network Characteristics Component의 특성

UAProf (User Agent Profile)의 Network Characteristics 구성 요소는 네트워크 연결을 위한 모바일 장치의 기능에 대한 정보를 제공합니다. 예를 들어, 지원되는 Bearer (CSD, GPRS, SMS, EDGE 등) 및 지원되는 암호화 방법 (WTLS, SSL, TLS 등) 등을 제공합니다.

다음 표에는 UAProf 스키마에 지정된 Network Characteristics 구성 요소의 일부 기본 특성이 나열되어 있습니다. 각 기본 속성에 대한 설명과 몇 가지 예가 제공됩니다. User Agent Profile은 아래 나열된 모든 속성을 포함하지 않을 수도 있습니다.

CurrentBearerService
설명:
CurrentBearerService 속성은 현재 세션에서 사용된 Bearer를 나타냅니다.
이 속성에서 찾을 수 있는 값은 다음과 같습니다.

3GPP_GPRS_IPV4
GSM_GPRS_IPV4
GSM_CSD_IPV4
GPRS
CSD
USSD
HSCSD
EDGE
EGPRS
SMS
OneWaySMS
TwoWaySMS
TwoWayPacket
UMTS
HSPA+
사용예:
<prf:CurrentBearerService>3GPP_GPRS_IPV4</prf:CurrentBearerService>

SecuritySupport
설명:
SecuritySupport 속성은 모바일 장치가 지원하는 보안 기술을 나타냅니다.
사용예:
<prf:SecuritySupport>
  <rdf:Bag>
    <rdf:li>WTLS-1</rdf:li>
    <rdf:li>WTLS-2</rdf:li>
    <rdf:li>WTLS-3</rdf:li>
    <rdf:li>SSL</rdf:li>
    <rdf:li>TLS</rdf:li>
    <rdf:li>signText</rdf:li>
    <rdf:li>PPTP</rdf:li>
  </rdf:Bag>
</prf:SecuritySupport>

SupportedBearers
설명:
SupportedBearers 특성은 모바일 장치가 지원하는 Bearer를 나타냅니다.
이 속성에서 찾을 수 있는 값은 다음과 같습니다.

3GPP_GPRS_IPV4
GSM_GPRS_IPV4
GSM_CSD_IPV4
GPRS
CSD
USSD
HSCSD
EDGE
EGPRS
SMS
OneWaySMS
TwoWaySMS
TwoWayPacket
UMTS
HSPA+
사용예:
<prf:SupportedBearers>
  <rdf:Bag>
    <rdf:li>GSM_GPRS_IPV4</rdf:li>
    <rdf:li>GSM_CSD_IPV4</rdf:li>
  </rdf:Bag>
</prf:SupportedBearers>

SupportedBluetoothVersion
설명:
SupportedBluetoothVersion 속성은 모바일 장치가 지원하는 Bluetooth 버전 번호를 나타냅니다.
모바일 장치에서 지원하는 Bluetooth 프로파일을 찾으려면 Hardware Platform 구성 요소의 BluetoothProfile 특성을 참조하면 됩니다.
사용예:
<prf:SupportedBluetoothVersion>4.2</prf:SupportedBluetoothVersion>

User Agent Profile의 Software Platform Component의 특성 및 사용예

UAProf (User Agent Profile)의 Software Platform 구성 요소는 모바일 장치의 소프트웨어 특성에 대한 정보를 제공합니다. 예를 들어, 지원되는 오디오 및 비디오 인코더, 허용된 문자 집합, Java 기능, 허용되는 콘텐츠 형식, MIME 형식 및 운영 체제 이름 및 버전 등을 제공합니다.

다음 표는 UAProf 스키마에 지정된대로 Software Platform 구성 요소의 일부 기본 속성을 나열합니다. 각 기본 속성에 대한 설명과 몇 가지 예가 제공됩니다. User Agent Profile은 아래 나열된 모든 속성을 포함하지 않을 수도 있습니다.

AcceptDownloadableSoftware
설명:
AcceptDownloadableSoftware 특성은 사용자가 다운로드 가능한 소프트웨어를 수락할지 여부를 나타냅니다.
사용예:
<prf:AcceptDownloadableSoftware>Yes</prf:AcceptDownloadableSoftware>
또는
<prf:AcceptDownloadableSoftware>No</prf:AcceptDownloadableSoftware>

AudioInputEncoder
설명:
AudioInputEncoder 속성은 무선 장치가 지원하는 오디오 입력 인코더를 나타냅니다.
사용예:
<prf:AudioInputEncoder>
  <rdf:Bag>
    <rdf:li>AMR</rdf:li>
    <rdf:li>EFR</rdf:li>
    <rdf:li>FR</rdf:li>
  </rdf:Bag>
</prf:AudioInputEncoder>

CcppAccept
설명:
CcppAccept 속성은 무선 장치의 허용 가능한 MIME 미디어 유형 목록을 포함합니다.
사용예:
<prf:CcppAccept>
  <rdf:Bag>
    <rdf:li>application/java</rdf:li>
    <rdf:li>application/java-archive</rdf:li>
    <rdf:li>application/vnd.wap.xhtml+xml</rdf:li>
    <rdf:li>application/vnd.wap.wmlscriptc</rdf:li>
    <rdf:li>application/x-java-archive</rdf:li>
    <rdf:li>application/xhtml+xml</rdf:li>
    <rdf:li>audio/3gpp</rdf:li>
    <rdf:li>audio/aac</rdf:li>
    <rdf:li>audio/amr</rdf:li>
    <rdf:li>audio/midi</rdf:li>
    <rdf:li>audio/mp3</rdf:li>
    <rdf:li>audio/mp4</rdf:li>
    <rdf:li>image/gif</rdf:li>
    <rdf:li>image/jpeg</rdf:li>
    <rdf:li>image/vnd.wap.wbmp</rdf:li>
    <rdf:li>text/css</rdf:li>
    <rdf:li>text/html</rdf:li>
    <rdf:li>text/plain</rdf:li>
    <rdf:li>text/vnd.sun.j2me.app-descriptor</rdf:li>
    <rdf:li>text/vnd.wap.wml</rdf:li>
    <rdf:li>video/3gpp</rdf:li>
    <rdf:li>video/mp4</rdf:li>
  </rdf:Bag>
</prf:CcppAccept>

CcppAccept-Charset
설명:
CcppAccept-Charset 속성은 무선 장치가 지원하는 문자 집합 목록을 포함합니다.
사용예:
<prf:CcppAccept-Charset>
  <rdf:Bag>
    <rdf:li>US-ASCII</rdf:li>
    <rdf:li>ISO-8859-1</rdf:li>
    <rdf:li>UTF-8</rdf:li>
    <rdf:li>ISO-10646-UCS-2</rdf:li>
  </rdf:Bag>
</prf:CcppAccept-Charset>

CcppAccept-Encoding
설명:
CcppAccept-Encoding 특성은 무선 장치가 수용할 수있는 전송 인코딩을 나타냅니다.
전송 인코딩 이름은 https://www.iana.org/assignments/transfer-encodings/transfer-encodings.xhtml에서 참조하면 됩니다.
사용예:
<prf:CcppAccept-Encoding>
  <rdf:Bag>
    <rdf:li>base64</rdf:li>
    <rdf:li>quoted-printable</rdf:li>
  </rdf:Bag>
</prf:CcppAccept-Encoding>

CcppAccept-Language
설명:
CcppAccept-Language 특성은 사용자의 언어 기본 설정을 나타냅니다. 사용법은 HTTP 헤더 Accept-Language와 비슷합니다.
항목은 우선 순위에 따라 나열됩니다. 예를 들어 첫 번째 목록 항목이 가장 선호되는 언어입니다.
사용예:
<prf:CcppAccept-Language>
  <rdf:Seq>
    <rdf:li>en</rdf:li>
    <rdf:li>de</rdf:li>
    <rdf:li>fr</rdf:li>
    <rdf:li>zh-TW</rdf:li>
    <rdf:li>zh-CN</rdf:li>
  </rdf:Seq>
</prf:CcppAccept-Language>

DownloadableSoftwareSupport
설명:
DownloadableSoftwareSupport 속성은 무선 장치가 수락하고 실행하는 다운로드 가능한 소프트웨어 유형을 나타냅니다.
사용예:
<prf:DownloadableSoftwareSupport>
  <rdf:Bag>
    <rdf:li>application/java</rdf:li>
    <rdf:li>application/java-archive</rdf:li>
  </rdf:Bag>
</prf:DownloadableSoftwareSupport>

JavaEnabled
설명:
JavaEnabled 속성은 무선 장치가 Java 프로그램을 실행할 수 있는지 여부를 나타냅니다.
사용예:
<prf:JavaEnabled>Yes</prf:JavaEnabled>
또는
<prf:JavaEnabled>No</prf:JavaEnabled>

JavaPlatform
설명:
JavaPlatform 속성은 무선 장치가 지원하는 Java 기술을 나타냅니다.
사용예:
<prf:JavaPlatform>
  <rdf:Bag>
    <rdf:li>CLDC</rdf:li>
    <rdf:li>MIDP</rdf:li>
    <rdf:li>MIDP/1.0-compatible</rdf:li>
    <rdf:li>Profile/MIDP-2.0</rdf:li>
    <rdf:li>Configuration/CLDC-1.0</rdf:li>
    <rdf:li>Configuration/CLDC-1.1</rdf:li>
  </rdf:Bag>
</prf:JavaPlatform>

JVMVersion
설명:
JVMVersion 속성은 무선 장치에서 Java 가상 시스템의 이름과 버전을 나타냅니다.
사용예:
<prf:JVMVersion>
  <rdf:Bag>
    <rdf:li>Sony VM</rdf:li>
  </rdf:Bag>
</prf:JVMVersion>

MexeClassmarks
설명:
MexeClassmarks 특성은 지원되는 MExE 클래스 표시를 나타냅니다. MExE는 모바일 실행 환경을 나타냅니다.
사용예:
<prf:MexeClassmarks>
  <rdf:Bag>
    <rdf:li>1</rdf:li>
    <rdf:li>3</rdf:li>
  </rdf:Bag>
</prf:MexeClassmarks>

MexeSecureDomains
설명:
MExSecureDomains 속성은 MExE 보안 도메인이 지원되는지 여부를 나타냅니다. MExE는 모바일 실행 환경을 나타냅니다.
사용예:
<prf:MexeSecureDomains>Yes</prf:MexeSecureDomains>
또는
<prf:MexeSecureDomains>No</prf:MexeSecureDomains>

MexeSpec
설명:
MexeSpec 특성은 무선 장치에서 지원하는 MExE 클래스마크 규격을 나타냅니다. MExE는 모바일 실행 환경을 나타냅니다.
사용예:
<prf:MexeSpec>22.057</prf:MexeSpec>

OSName
설명:
OSName 속성은 무선 장치의 운영 체제 이름을 나타냅니다.
사용예:
<prf:OSName>Android</prf:OSName>

OSVendor
설명:
OSVendor 속성은 무선 장치의 운영 체제 공급 업체를 나타냅니다.
사용예:
<prf:OSVendor>Google</prf:OSVendor>

OSVersion
설명:
OSVersion 속성은 무선 장치의 운영 체제 버전 번호를 나타냅니다.
사용예:
<prf:OSVersion>8.0</prf:OSVersion>

RecipientAppAgent
설명:
RecipientAppAgent 속성은 현재 요청을 보낸 User Agent를 나타냅니다.
사용예:
<prf:RecipientAppAgent>BrowserMail</prf:RecipientAppAgent>

SoftwareNumber
설명:
SoftwareNumber 속성은 펌웨어의 버전 번호를 나타냅니다.
사용예:
<prf:SoftwareNumber>8.0a</prf:SoftwareNumber>

VideoInputEncoder
설명:
VideoInputEncoder 속성은 무선 장치가 지원하는 비디오 입력 인코더를 나타냅니다.
사용예:
<prf:VideoInputEncoder>
  <rdf:Bag>
    <rdf:li>H.263</rdf:li>
    <rdf:li>MPEG-1</rdf:li>
    <rdf:li>MPEG-2</rdf:li>
  </rdf:Bag>
</prf:VideoInputEncoder>

User Agent Profile의 Hardware Platform Component의 특성 및 사용예

UAProf (User Agent Profile)의 Hardware Platform 구성 요소는 모바일 장치의 하드웨어 기능에 대한 정보를 제공합니다. 예를 들어, 색상 기능, 모바일 장치의 모델 이름, 텍스트 입력 기능, 화면 크기 및 사운드 기능 등을 제공합니다.

다음 표는 UAProf 스키마에 지정된대로 Hardware Platform 구성 요소의 일부 기본 특성을 나열합니다. 각 기본 속성에 대한 설명과 몇 가지 예가 제공됩니다. User Agent Profile은 아래 나열된 모든 속성을 포함하지 않을 수도 있습니다.

BitsPerPixel
설명:
BitsPerPixel 특성은 픽셀이 색을 나타내는데 사용하는 비트수를 나타냅니다. BitsPerPixel을 사용하여 화면에서 지원되는 색상수를 계산할 수 있습니다.
예를 들어 BitsPerPixel이 16이면 모바일 장치의 화면에 2^16 = 65536 색을 표시할 수 있음을 의미합니다.
사용예:
<prf:BitsPerPixel>16</prf:BitsPerPixel>

BluetoothProfile
설명:
BluetoothProfile 속성은 모바일 장치가 지원하는 Bluetooth 프로파일을 나타냅니다.
블루투스 프로파일은 블루투스 사양으로 정의되었습니다.
모바일 장치가 지원하는 Bluetooth 버전을 찾으려면 Network Characteristics 구성 요소의 SupportedBluetoothVersion 속성을 참조하면 됩니다.
사용예:
<prf:BluetoothProfile>
  <rdf:Bag>
    <rdf:li>headset</rdf:li>
    <rdf:li>dialup</rdf:li>
    <rdf:li>lanaccess</rdf:li>
  </rdf:Bag>
</prf:BluetoothProfile>

ColorCapable
설명:
ColorCapable 속성은 모바일 장치의 화면에서 색상을 표시할 수 있는지 여부를 나타냅니다.
화면에서 지원하는 색상수를 찾으려면 HardwarePlatform 구성 요소의 BitsPerPixel 특성을 참조하면 됩니다.
사용예:
<prf:ColorCapable>Yes</prf:ColorCapable>
또는
<prf:ColorCapable>No</prf:ColorCapable>

CPU
설명:
CPU 속성은 모바일 장치가 사용하는 CPU의 이름과 모델을 나타냅니다.
사용예:
<prf:CPU>Pentium</prf:CPU>
또는
<prf:CPU>ARM</prf:CPU>

ImageCapable
설명:
ImageCapable 특성은 모바일 장치가 이미지를 표시할 수 있는지 여부를 나타냅니다.
지원되는 이미지 형식을 찾으려면 SoftwarePlatform 구성 요소의 CcppAccept 특성을 사용할 수 있습니다. 예를 들어 "image/gif"가 CcppAccept에서 발견되면 모바일 장치가 GIF 이미지 형식을 지원함을 의미합니다.
사용예:
<prf:ImageCapable>Yes</prf:ImageCapable>
또는
<prf:ImageCapable>No</prf:ImageCapable>

InputCharSet
설명:
InputCharSet 특성은 텍스트 입력에 사용할 수 있는 문자 집합을 나타냅니다.
사용예:
<prf:InputCharSet>
  <rdf:Bag>
    <rdf:li>ISO-8859-1</rdf:li>
    <rdf:li>US-ASCII</rdf:li>
    <rdf:li>UTF-8</rdf:li>
    <rdf:li>ISO-10646-UCS-2</rdf:li>
  </rdf:Bag>
</prf:InputCharSet>

Keyboard
설명:
키보드 속성은 모바일 장치의 키보드 유형을 나타냅니다.
사용예:
<prf:Keyboard>PhoneKeypad</prf:Keyboard>
또는
<prf:Keyboard>Qwerty</prf:Keyboard>

Model
설명:
Model 속성은 모바일 장치의 모델을 나타냅니다.
사용예:
<prf:Model>6230i</prf:Model>
또는
<prf:Model>W800i</prf:Model>

NumberOfSoftKeys
설명:
NumberOfSoftKeys 특성은 모바일 장치에서 사용할 수 있는 소프트키 수를 나타냅니다.
사용예:
<prf:NumberOfSoftKeys>2</prf:NumberOfSoftKeys>

OutputCharSet
설명:
OutputCharSet 특성은 텍스트 출력에 사용할 수 있는 문자 집합을 나타냅니다.
사용예:
<prf:OutputCharSet>
  <rdf:Bag>
    <rdf:li>ISO-8859-1</rdf:li>
    <rdf:li>US-ASCII</rdf:li>
    <rdf:li>UTF-8</rdf:li>
    <rdf:li>ISO-10646-UCS-2</rdf:li>
  </rdf:Bag>
</prf:OutputCharSet>

PixelAspectRatio
설명:
PixelAspectRatio 특성은 한 픽셀의 너비와 한 픽셀의 높이의 비율을 나타냅니다.
예를 들어, 비율이 1:1이면 PixelAspectRatio에서 1x1 값을 찾을 수 있습니다. "x" 문자가 ":" 문자 대신 사용됩니다.
사용예:
<prf:PixelAspectRatio>1x1</prf:PixelAspectRatio>

ScreenSize
설명:
ScreenSize 특성은 화면 크기를 픽셀 단위로 나타냅니다. 첫 번째 값은 화면 너비이고 두 번째 값은 화면 높이입니다.
사용예:
<prf:ScreenSize>208x208</prf:ScreenSize>
또는
<prf:ScreenSize>176x220</prf:ScreenSize>

ScreenSizeChar
설명:
ScreenSizeChar 특성은 화면 크기를 문자로 나타냅니다. 모바일 장치의 표준 폰트중 가장 큰 문자가 단위로 사용됩니다. 첫 번째 값은 화면 너비이고 두 번째 값은 화면 높이입니다.
예를 들어, ScreenSizeChar가 18x5이면 모바일 장치의 화면이 한 행에 18 자, 한 열에 5자를 채울 수 있음을 의미합니다.
사용예:
<prf:ScreenSizeChar>18x5</prf:ScreenSizeChar>
또는
<prf:ScreenSizeChar>12x8</prf:ScreenSizeChar>

SoundOutputCapable
설명:
SoundOutputCapable 속성은 모바일 장치가 사운드를 출력할 수 있는지 여부를 나타냅니다.
사용예:
<prf:SoundOutputCapable>Yes</prf:SoundOutputCapable>
또는
<prf:SoundOutputCapable>No</prf:SoundOutputCapable>

StandardFontProportional
설명:
StandardFontProportional 속성은 모바일 장치에서 사용되는 표준 글꼴이 비례하는지 여부를 나타냅니다.
사용예:
<prf:StandardFontProportional>Yes</prf:StandardFontProportional>
또는
<prf:StandardFontProportional>No</prf:StandardFontProportional>

TextInputCapable
설명:
TextInputCapable 특성은 사용자가 모바일 장치에 텍스트를 입력할 수 있는지 여부를 나타냅니다.
예를 들어, TextInputCapable이 Yes이면 사용자가 영문자와 숫자를 모두 입력할 수 있음을 의미합니다. TextInputCapable이 No인 경우 사용자가 알파벳을 입력할 수 없으며 숫자만 모바일 장치에 입력할 수 있음을 의미합니다.
사용예:
<prf:TextInputCapable>Yes</prf:TextInputCapable>
또는
<prf:TextInputCapable>No</prf:TextInputCapable>

Vendor
설명:
Vendor 특성은 모바일 장치 제조업체를 나타냅니다.
사용예:
<prf:Vendor>Samsung</prf:Vendor>

VoiceInputCapable
설명:
VoiceInputCapable 속성은 모바일 장치가 음성 입력을 지원하는지 여부를 나타냅니다.
사용예:
<prf:VoiceInputCapable>Yes</prf:VoiceInputCapable>
또는
<prf:VoiceInputCapable>No</prf:VoiceInputCapable>

2018년 1월 2일 화요일

기기의 사양을 가지고 있는 UAProf (User Agent Profile) 이란?

UAProf (User Agent Profile)는 사용자 에이전트 유형 및 기기의 사양에 대한 정보가 들어있는 XML 문서입니다. Open Mobile Alliance (이전 WAP 포럼)에서 정의하고 유지 관리하는 표준입니다.

UAProf는 스키마 (Schema)로 RDF (Resource Description Framework)가 있는 CC/PP (Composite Capabilities/Preferences Profiles) 프레임워크에 따라 작성되었습니다. CC/PP와 RDF는 모두 W3C (World Wide Web Consortium)에 의해 정의되었습니다.

User Agent Profile은 프로파일 저장소라는 서버에 저장됩니다. 종종 모바일 장치 제조업체가 프로파일 저장소를 유지 관리합니다. 예를 들어 삼성 휴대폰의 기능을 설명하는 User Agent Profile은 삼성이 관리하는 프로파일 저장소에 저장됩니다.

모바일 장치의 User Agent Profile을 가리키는 URL은 모바일 장치가 보낸 요청의 헤더에 있습니다. 보통 URL은 x-wap-profile 헤더 또는 Profile 헤더에 있습니다.

User Agent Profile은 많은 구성 요소를 포함하며 각 구성 요소는 여러 속성을 가집니다. 아래는 User Agent Profile의 하나의 예로 일부분을 보여줍니다.


위의 User Agent Profile에서 탑재된 Bluetooth Profile 종류들과 사용된 Chipset 등의 정보를 볼 수 있습니다.

User Agent Profile의 최신 버전은 Open Mobile Alliance에서 찾아볼 수 있습니다.

2018년 1월 1일 월요일

브라우저의 User Agent String 이란?

기본 사항

브라우저가 웹사이트에 연결하면 HTTP 헤더에 User Agent 필드가 포함됩니다. User Agent 필드의 내용은 브라우저마다 다릅니다. 각 브라우저에는 고유한 User Agent가 있습니다. 본질적으로 User Agent는 브라우저가 "안녕하세요, 저는 Windows에서 Mozilla Firefox입니다." 또는 "안녕하세요, 저는 iPhone의 Safari입니다"라고 웹서버에 말하는 것과 같습니다.

웹서버는이 정보를 사용하여 서로 다른 웹페이지를 다른 웹브라우저와 다른 운영 체제에 제공할 수 있습니다. 예를 들어 웹사이트는 모바일 페이지를 최신 모바일 페이지로, 최신 페이지를 최신 브라우저로, 또는 "브라우저를 업그레이드하십시오"라는 메시지를 브라우저에 보낼 수 있습니다.

사용중인 브라우저 User Agent String 알아내는 방법

아래와 같이 "https://www.whoishostingthis.com/tools/user-agent/" 웹사이트에 접속하면 현재 사용중인 브라우저의 User Agent String를 알아낼 수 있습니다.


User Agent String 역사

Mosaic는 최초의 브라우저 중 하나였습니다. User Agent String은 'NCSA_Mosaic/2.0'입니다. 나중에 Mozilla가 나왔고 (나중에 Netscape로 바뀜), User Agent String는 'Mozilla/1.0'이었습니다. Mozilla는 Mosaic보다 고급 브라우저였습니다. 특히 프레임을 지원했습니다. 웹 서버는 User Agent String에 Mozilla라는 단어가 들어 있는지 확인하고 Mozilla 브라우저에 프레임이 포함된 페이지를 보냈습니다. 다른 브라우저에서는 웹 서버가 프레임이 없는 페이지를 보냈습니다.

결국 Microsoft의 Internet Explorer도 등장했으며 프레임도 지원했습니다. 그러나 IE는 프레임이 있는 웹 페이지를받 지 못했습니다. 웹 서버가 모질라 브라우저로 전송했기 때문입니다. 이 문제를 해결하기 위해 Microsoft는 User Agent String에 Mozilla라는 단어를 추가하고 추가 정보 ("compatible"및 IE에 대한 참조)를 던졌습니다. 웹 서버는 Mozilla라는 단어를 보게되어 IE에 현대 웹 페이지를 보냈습니다. 나중에 나온 다른 브라우저도 똑같은 일을 했습니다.

결국 일부 서버는 Gecko (Firefox의 렌더링 엔진)라는 단어를 찾고 Gecko 브라우저에 이전 브라우저와 다른 페이지를 제공했습니다. 원래 Konquerer를 위해 KDE 데스크탑용으로 개발된 KHTML에는 Gecko와 같은 최신 페이지를 얻을 수 있도록 ""like Gecko"이라는 단어가 추가되었습니다. WebKit은 KHTML을 기반으로 개발되었지만 WebKit이라는 단어를 추가하고 호환성을 위해 원래의 "KHTML, like Gecko" 줄을 유지했습니다. 이런 식으로 브라우저 개발자는 계속해서 User Agent String에 단어를 추가했습니다.

웹 서버는 정확한 User Agent String이 무엇인지 신경쓰지 않습니다. 단지 특정 단어가 포함되어 있는지 확인하기만 하면 됩니다.

User Agent String 용도

웹 서버는 다음과 같은 다양한 용도로 User Agent String를 사용합니다.

▶ 다른 웹 브라우저에는 다른 웹 페이지 제공함. 예를 들어, 구형 브라우저에 단순한 웹 페이지를 제공합니다.
▶ 다른 운영 체제에는 다른 콘텐츠를 표시함. 모바일 장치에는 그 장치에 맞게 간소화된 페이지를 보내줍니다.
▶ 사용자가 사용중인 브라우저 및 운영 체제를 보여주는 통계를 수집합니다. 브라우저 시장 점유율 통계를 본 적이 있다면, 이것이 통계를 입수하는 방법입니다.

웹 크롤링 로봇도 User Agent String을 사용합니다. 예를 들어 Google의 웹 크롤러는 다음과 같이 자신을 식별합니다.

웹 서버는 봇에게 특별한 등록 절차 (예 : 필수 등록 화면을 통해 허용)를 제공 할 수 있습니다. (예, User Agent String를 Googlebot으로 설정하여 등록 화면을 무시할 수도 있음을 의미합니다.)

웹 서버는 robots.txt 파일을 사용하여 특정 봇 (또는 모든 봇)에게 주문을 제공할 수도 있습니다. 예를 들어 웹 서버는 특정 봇에게 정보를 제공하지 못하게 하거나, 다른 봇에게 정보를 제공하도록 지정할 수 있습니다. robots.txt 파일에서 봇은 User Agent String로 식별됩니다.

모든 주요 브라우저에는 Custom User Agent String을 설정할 수 있는 방법이 포함되어 있으므로 웹 서버가 다른 브라우저로 보내는 내용을 볼 수 있습니다. 예를 들어 데스크톱 브라우저를 모바일 브라우저의 User Agent String로 설정하면 데스크톱에 모바일 버전의 웹 페이지가 표시됩니다.