사용자 에이전트
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
사용자 에이전트는 소프트웨어 에이전트가 네트워크 프로토콜에서 자신을 식별하기 위해 제출하는 문자열이다. HTTP, SIP, NNTP 프로토콜에서 User-Agent 헤더 필드를 통해 전달되며, 웹 크롤러와 같은 봇은 URL 또는 이메일 주소를 포함하여 웹마스터가 연락할 수 있도록 한다. HTTP 사용자 에이전트는 웹 브라우저나 크롤러 등이 있으며, 서버는 접근 분석, 로봇 배제 표준 적용 등에 활용한다. User-Agent 헤더는 위장될 수 있으며, 과거에는 브라우저 간 호환성 문제로 인해 사용자 에이전트 스니핑이 사용되기도 했다. 일부 브라우저는 암호 강도를 나타내는 문자를 User-Agent 헤더에 포함하기도 했다.
더 읽어볼만한 페이지
- 클라이언트 - 클라이언트 서버 모델
클라이언트-서버 모델은 서비스를 요청하는 클라이언트와 제공하는 서버로 구성되어 요청-응답 메시지 패턴을 통해 통신하는 분산 컴퓨팅 아키텍처이다. - 클라이언트 - 클라이언트 사이드
클라이언트 사이드는 서버와 통신하는 클라이언트 환경에서 데이터를 처리하는 방식으로, 웹 브라우저의 HTML 문서 해석이나 MMORPG의 그래픽 및 사운드 처리 등이 그 예시이며, 서버 부담 감소와 사용자 경험 향상에 기여하지만 보안, 호환성, 성능 저하 등의 문제점도 가진다. - 컴퓨터 보안 - 얼굴 인식 시스템
얼굴 인식 시스템은 디지털 이미지나 비디오에서 사람 얼굴을 감지하고 식별하는 기술로, 다양한 알고리즘 발전을 거쳐 보안, 신원 확인 등에 활용되지만, 편향성, 개인 정보 침해, 기술적 한계와 같은 윤리적 문제도 야기한다. - 컴퓨터 보안 - 워터마크
워터마크는 종이 제조 시 두께 차이를 이용해 만들어지는 표식으로, 위조 방지를 위해 지폐나 여권 등에 사용되며 댄디 롤 등의 제작 기법을 통해 만들어지고 컴퓨터 프린터 인쇄 기술로도 활용된다.
사용자 에이전트 |
---|
2. 사용자 에이전트 식별
소프트웨어 에이전트가 네트워크 프로토콜에서 동작할 때, 자신, 애플리케이션 유형, 운영 체제, 소프트웨어 업체, 소프트웨어 버전을 식별하는 문자열을 상대에게 제출한다. HTTP,[5] SIP,[4], NNTP[6] 프로토콜에서 이 정보는 'User-Agent' 헤더 필드를 통해 전달된다. 봇은 웹마스터가 운영자와 연락할 수 있도록 URL이나 이메일 주소를 포함하기도 한다.
2. 1. HTTP 사용자 에이전트
HTTP를 사용하여 자원을 가져오는 등의 작업을 수행하는 사용자 에이전트를 HTTP 사용자 에이전트라고 한다. HTTP 사용자 에이전트에는 웹 브라우저나, 자원을 자동으로 처리하는 크롤러 등이 있다.HTTP에서는 User-Agent 헤더가 정의되어 있다. 클라이언트는 서버에 요청을 보낼 때, 사용자 에이전트의 정보를 User-Agent 헤더로 전송한다. User-Agent 헤더에는 애플리케이션 이름, 버전, 호스트 운영 체제나 언어 등의 정보가 포함된다. 웹 크롤러와 같은 봇의 경우, 웹 담당자가 해당 봇의 운영자와 연락을 취할 수 있도록 URL이나 전자 메일 주소도 포함한다.
User-Agent 헤더는 서버 측에서 다양한 용도로 활용된다. 액세스 분석을 할 때, User-Agent 헤더를 통해 사용자가 사용하고 있는 브라우저의 종류나 버전을 집계할 수 있다.
또한 User-Agent 헤더를 위조하여, "로봇 배제 표준"(robots.txt)을 사용하여 특정 페이지 또는 웹사이트의 일부에서 크롤러를 배제하기 위한 기준 중 하나가 된다. 웹 담당자는 특정 크롤러가 특정 페이지를 수집하지 않도록 하거나, 특정 크롤러가 과도한 대역폭을 소비하는 경우 등에, 해당 크롤러가 해당 페이지를 방문하지 않도록 요청할 수 있다.
하지만, User-Agent 헤더의 값은 어디까지나 클라이언트 측의 자기 신고이므로, 실제 사용자 에이전트와 다른 값을 전송하는 것도 가능하다.
2. 1. 1. 웹 브라우저의 User-Agent 형식
HTTP에서는 User-Agent 헤더가 정의되어 있다.클라이언트는 서버에 요청을 보낼 때, 사용자 에이전트의 정보를 User-Agent 헤더로 전송한다. User-Agent 헤더에는 애플리케이션 이름, 버전, 호스트 운영 체제나 언어 등의 정보가 포함된다. 웹 크롤러와 같은 봇의 경우, 웹 담당자가 해당 봇의 운영자와 연락을 취할 수 있도록 URL이나 전자 메일 주소도 포함한다.
맥 OS 15.6, 사파리 605.1.15 버전의 예시는 다음과 같다.
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6 Safari/605.1.15
2. 1. 2. 자동화된 에이전트(봇)의 User-Agent 형식
소프트웨어 에이전트가 네트워크 프로토콜 안에서 동작할 때, 문자적 식별 문자열을 피어(peer)에 제출함으로써 종종 자기 자신과 애플리케이션 유형, 운영 체제, 소프트웨어 업체, 소프트웨어 리비전을 식별한다. HTTP,[5] SIP,[4], NNTP[6] 프로토콜에서 이러한 식별 정보는 ''User-Agent''라는 헤더 필드를 통해 전달된다. 웹 크롤러와 같은 봇은 웹마스터가 봇의 운영자와 연락을 취할 수 있도록 URL이나 이메일 주소를 포함하기도 한다.[5]구글봇의 예시는 다음과 같다.
Googlebot/2.1 (+http://www.google.com/bot.html)
2. 1. 3. User-Agent 스니핑
사용자 에이전트 스니핑이란 웹사이트가 사용자 에이전트에 따라 다른 내용을 표시하거나 특정 사용자 에이전트에만 내용을 표시하는 것을 말한다. Vivaldi는 이러한 문제를 피하기 위해 크롬(Google Chrome)의 사용자 에이전트를 사용하고 있다.[3]마이크로소프트의 아웃룩 2003 웹 액세스는 대표적인 사례였다. Internet Explorer로 열람하면 다른 브라우저보다 많은 기능이 표시되었다.
휴대 전화용 웹사이트에서는 제조사 간, 신형과 구형 기종 간에 휴대 전화 브라우저의 사양이 종종 크게 달랐기 때문에 사용자 에이전트 스니핑이 이루어졌다. User-Agent 헤더 위장이 쉽기 때문에, IP 주소를 기준으로 휴대 전화 여부를 판단하는 경우도 있었다. 기종 간 표시 내용의 차이는 작을 수도 있고 (예: 작은 화면에 맞게 특정 이미지의 크기를 변경), 매우 클 수도 있다(예: XHTML 대신 WML로 페이지를 표현).
2. 1. 4. User-Agent 위장
User-Agent 스니핑을 회피하기 위해 User-Agent 정보를 변경하는 것을 User-Agent 위장이라고 한다.가장 오래된 예시는 Internet Explorer가 "Mozilla/<version> (compatible; MSIE <version>..."으로 시작하는 User-Agent 헤더 값을 사용한 것이다. 이는 당시 Internet Explorer의 주 경쟁자였던 넷스케이프 네비게이터용 콘텐츠를 받기 위함이었다.[3]
이후, 브라우저 전쟁에서 Internet Explorer의 점유율이 확대되면서 User-Agent 헤더 값의 형식은 부분적으로 다른 브라우저에 의해 복제되었다.
모질라 파이어폭스, 사파리, 오페라와 같은 Internet Explorer의 경쟁 제품들은 사용자가 User-Agent 헤더 등을 조작하여 변경할 수 있는 기능을 갖추고 있었다. 이 기능은 Internet Explorer 전용으로 설계된 웹사이트를 이용할 때 사용되었다. 하지만, 웹사이트가 Internet Explorer의 독자적인 기능을 사용했기 때문에 User-Agent 헤더를 위장해도 정상적으로 사용할 수 없는 경우도 많았다.
웹 브라우저 외에, 대부분의 다운로드 매니저나 오프라인 브라우저도 User-Agent 헤더를 사용자의 취향에 맞게 변경하는 기능을 가지고 있다.
2. 2. SIP 사용자 에이전트
세션 개시 프로토콜(SIP)을 해석하고 처리하는 각종 단말의 소프트웨어 및 하드웨어이다. SIP에 대응하는 IP 전화기나 VoIP 게이트웨이 등이 있다.3. 암호 강도 표시 (Netscape, Mozilla, Opera 등)
Netscape, Mozilla, Opera 등 일부 브라우저에서는 User-Agent 헤더에 브라우저의 암호 강도를 나타내는 U, I, N 세 문자를 사용했다. 미국 정부는 40비트를 초과하는 암호의 미국에서 국외로 수출하는 것을 허용하지 않았기 때문에 암호 강도가 다른 버전이 출시되었다.[1]
- U: "USA"를 나타내며, 128비트 암호화를 갖춘 버전이다.
- I: "international(국제적)"을 나타내며, 40비트 암호화를 갖추고 있어 전 세계 어디에서든 사용할 수 있다.
- N: "none(없음)"을 나타내며 암호화를 수행하지 않는다.
원래 "U" 버전은 미국 내에서만 다운로드할 수 있었지만, 이후 미국 정부가 정책을 완화하면서 현재는 대부분의 국가에서 높은 암호화를 사용하는 버전이 허용되고 있다. 따라서 현재는 국제판이 더 이상 필요하지 않으므로 Netscape와 Mozilla는 "U" 버전만 배포하고 있다.[1]
4. 한국에서의 사용자 에이전트 활용
HTTP에서 사용자 에이전트(User-Agent) 헤더는 클라이언트가 서버에 요청을 보낼 때 함께 전송하는 정보이다. 이 헤더에는 애플리케이션 이름, 버전, 운영 체제, 언어 등의 정보가 포함된다.[1] 웹 크롤러와 같은 봇의 경우, 웹 담당자가 봇 운영자와 연락할 수 있도록 URL이나 이메일 주소도 포함될 수 있다.[1]
서버는 사용자 에이전트 정보를 다양하게 활용한다.[1] 예를 들어, 사용자 에이전트 헤더를 통해 사용자가 어떤 브라우저와 버전을 사용하는지 파악하여 접속 통계를 낼 수 있다.[1]
또한, "로봇 배제 표준"(robots.txt)을 통해 특정 웹사이트나 페이지에서 크롤러를 차단하는 기준으로 사용자 에이전트 정보를 활용하기도 한다.[1] 웹 담당자는 특정 크롤러가 페이지를 수집하지 못하게 하거나, 과도한 트래픽을 유발하는 크롤러의 접근을 막을 수 있다.[1]
그러나 사용자 에이전트 헤더 값은 클라이언트가 임의로 변경할 수 있기 때문에, 실제와 다른 정보를 보낼 수도 있다.[1]
참조
[1]
웹사이트
W3C Definition of User Agent
https://www.w3.org/W[...]
www.w3.org
2011-06-16
[2]
웹사이트
User agent
https://developer.mo[...]
2024-07-08
[3]
웹사이트
もうVivaldiとは名のらない「Vivaldi」最新版、Webサイト互換性アップ
https://news.mynavi.[...]
2019-12-22
[4]
간행물
SIP: Session Initiation Protocol
IETF, The Internet Society
2002
[5]
간행물
Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
IETF, The Internet Society
2014-06
[6]
IETF
Netnews Article Format
국제 인터넷 표준화 기구
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com