홈페이지 » 어떻게 » 브라우저의 사용자 에이전트 란 무엇입니까?

    브라우저의 사용자 에이전트 란 무엇입니까?

    브라우저는 연결 한 모든 웹 사이트로 사용자 에이전트를 보냅니다. 이전에 브라우저의 사용자 에이전트를 변경하는 방법에 대해 작성했지만 어쨌든 사용자 에이전트는 정확히 무엇입니까??

    사용자 에이전트는 웹 서버에 대한 브라우저 및 운영 체제를 식별하는 "문자열"즉, 텍스트 행입니다. 이것은 간단하게 들리지만 사용자 에이전트는 시간이 지남에 엉망이되었습니다..

    기본 사항

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

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

    사용자 에이전트 검사

    예를 들어, Firefox의 Windows 7 사용자 에이전트는 다음과 같습니다.

    Mozilla / 5.0 (Windows NT 6.1, WOW64, rv : 12.0) Gecko / 20100101 Firefox / 12.0

    운영체제는 Windows 7 (코드 명 Windows NT 6.1)이며 64 비트 버전의 Windows (WOW64)이며 브라우저 자체는 Firefox 12입니다..

    이제 Internet Explorer 9의 사용자 에이전트를 살펴 보겠습니다.

    Mozilla / 5.0 (MSIE 9.0, Windows NT 6.1, WOW64, Trident / 5.0)

    사용자 에이전트 문자열은 Trident 5 렌더링 엔진을 사용하여 브라우저를 IE 9로 식별합니다. 그러나, 뭔가 혼란 스러울 수 있습니다 - IE는 Mozilla.

    우리는 잠시 후에 그걸 다시 볼 것입니다. 먼저 Chrome의 사용자 에이전트에 대해 살펴 보겠습니다.

    Mozilla / 5.0 (Windows NT 6.1, WOW64) AppleWebKit / 536.5 (Gecko와 같은 KHTML) Chrome / 19.0.1084.52 Safari / 536.5

    줄거리가 두꺼워 짐 : Chrome은 모질라와 사파리 인 것처럼 가장합니다. 이유를 이해하려면 사용자 에이전트 및 브라우저의 내역을 검토해야합니다..

    사용자 에이전트 문자열 혼란

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

    결국 마이크로 소프트 인터넷 익스플로러도 등장했고 프레임도 지원했다. 그러나 IE는 프레임이있는 웹 페이지를받지 못했습니다. 웹 서버가 모질라 브라우저로 전송했기 때문입니다. 이 문제를 해결하기 위해 Microsoft는 사용자 에이전트에 Mozilla라는 단어를 추가하고 추가 정보 ( "compatible"및 IE에 대한 참조)를 던졌습니다. 웹 서버는 모질라라는 단어를 보았고 IE에 현대 웹 페이지를 보냈습니다. 나중에 나온 다른 브라우저도 같은 결과를 보였습니다..

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

    웹 서버는 정확한 사용자 에이전트 문자열이 무엇인지 신경 쓰지 않습니다. 특정 단어가 포함되어 있는지 확인하기 만하면됩니다..

    용도

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

    • 다른 웹 브라우저에서 다른 웹 페이지 검색. 예를 들어,이 웹 페이지는 Internet Explorer에서 볼 수 있어야합니다. "라는 메시지를 표시하는 등 악의적 인 용도로 사용할 수 있습니다..
    • 다른 운영 체제에 다른 콘텐츠 표시 - 예 : 모바일 장치에 슬림 페이지 표시.
    • 사용자가 사용중인 브라우저 및 운영 체제를 보여주는 통계를 수집합니다. 브라우저 시장 점유율 통계를 본 적이 있다면, 이것이 인수 방법입니다.

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

    Googlebot / 2.1 (+ http : //www.google.com/bot.html)

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

    웹 서버는 robots.txt 파일을 사용하여 특정 봇 (또는 모든 봇)에게 주문을 제공 할 수도 있습니다. 예를 들어 웹 서버는 특정 봇에게 정보를 제공하지 못하게하거나 다른 봇에게 해당 웹 사이트의 특정 영역 만 색인을 생성하도록 지시 할 수 있습니다. robots.txt 파일에서 봇은 사용자 에이전트 문자열로 식별됩니다..


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