Math equations

Thursday, July 4, 2013

User-Agent가 뭐지?

날이면 날마다 인터넷을 이용하지만, 사실 인터넷이 어떻게 작동하고 있는지는 잘 모르고 있는 것 같다.

오늘은 User-Agent에 대해서 조금 써보려고 한다.

한국어로는 사용자 에이전트로 번역한다. 위키
보통 그렇듯 내용이 짧아 별게 없는데 영어위키를 보면 설명이 더 쉽게 되어있다.

사용자를 대신해서 인터넷에 접속하는 소프트웨어. 즉 브라우저다.

인터넷 사이트에 접속할 때 User-agent는 사용자에 관한 정보를 전송하게 되는데
그게 바로 "User-Agent" header 사용자 에이전트 헤더다.

이건 그냥 문자열인데, 브라우저/운영체제 등에 관한 정보를 담고 있다.

현재 사용하고 있는 유저 에이전트 헤더를 확인하려면

http://www.whatsmyuseragent.com/
를 방문하면 된다.

지금 사용하고 있는 컴퓨터로 이 사이트를 방문했더니

Your User Agent String is:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.0 Safari/537.36

이런 정보가 나왔다.

리눅스를 사용하고 있다는 사실이 이렇게 드러나고 있었던 것이다.


파이썬으로 웹페이지를 방문하는 법에 대해서 이전 포스팅에서 언급한 적이 있는데
http://rheasis.blogspot.com/2013/06/blog-post_16.html
이 경우 User agent는 Python-urllib/2.7
이런식으로 나오기 때문에 서버 측에서 보통 웹브라우저가 아니라 파이썬을 이용해서 접속했다는 걸 알 수가 있겠다.


사용자 에이전트 정보에 따라서 서버 측에서 다른 웹페이지를 보여주는 것이 가능하기 때문에, 때로는 파이어폭스를 쓰면서 익스플로러를 쓰는 척하거나 리눅스를 쓰면서 윈도우에서 접속한 척하는 게 유용한 경우가 있는데

역시, 사람들이 이미 다 만들어놓았다.

파이어폭스 애드온 User agent switcher.




파이썬으로도 사용자 에이전트 헤더를 바꾸는 게 가능한다.


import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
opener.open('http://www.example.com/')

를 따라하면 된다.

내 경우에는 이렇게..
opener.addheaders=[('User-agent', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.0 Safari/537.36')]

바꿔주면 된다.




본 포스트는 레아시스와 무관합니다.



2 comments: