레이블이 Browser인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Browser인 게시물을 표시합니다. 모든 게시물 표시

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로 설정하면 데스크톱에 모바일 버전의 웹 페이지가 표시됩니다.

2017년 11월 20일 월요일

데스크탑/모바일 기기에서의 브라우저/OS 점유율 추이 (2017년 10월말 기준)

2017 10월말 기준으로 해서 1년간 데스크탑/모바일에서의 브라우저 및 OS 점유율에 대한 조사 내용입니다.




2017년 5월 14일 일요일

파비콘 (Favicon)의 간략한 역사

파비콘 (Favicon : 바로 가기 아이콘이라고도 함) Internet Explorer 5에서 처음 등장했습니다. 여기서 favicon.ico 아이콘을 웹 사이트의 루트에 두면 16px 크기의 이미지가 주소 표시 줄과 북마크 목록의 URL 옆에 어떠한 HTML 추가함이 없이 나타납니다. 처음에는 Favicon에 대한 요청을 계산하여 사이트에 즐겨 찾기를 몇번 추가했는지 평가하는 추가 이점이 있었지만 브라우저가 책갈피 이외의 다른 것에 대한 favicon을 지원하기 시작한 이후로는 더이상 신뢰할 수 없습니다.

파비콘과 응용 프로그램 아이콘들의 목적은 행동을 요약하거나 언어 장벽을 극복하는 것이 아니라 사이트를 푯말로 표현하고 브랜딩을 브라우저로 확장하는 것입니다. 따라서 파비콘은 거의 항상 사이트 로고의 작은 크기의 로고가 됩니다. 다행히도 일반적으로 응용 프로그램 아이콘보다 16 픽셀 로고를 다시 만드는 것이 더 간단합니다.

요즘에는 훨씬 더 큰 크기도 사용할 수 있지만 16px 버전은 필수적이며 아이콘 디자인을 처음 사용하는 경우 시작하기에 이상적입니다.