티스토리 뷰
HTTP Protocol 에서 request에서 사용하는 USER-AGENT 헤더, 그리고 실제 facebook에서 open graph explorer가 사용하는 facebook의 USER-AGENT
DevES 2016. 9. 5. 21:35User-Agent는 HTTP 클라이언트(브라우저, 봇, etc.)이 서버로 보내는 HTTP 요청을 보낼 때 전송하는 문자열이다. 이는 HTTP request 헤더값 안에 포함된다. User-Agent 구문은 "/ 와 버전명을 포함한 소프트웨어 제품 이름"으로 정의 되어 있다.
User-Agent 문자열이 나타난다면 클라이언트에 의해 사용된 소프트웨어 프로그램 정보를 전달한다. 이는 통계 목적과 프로토콜 위반을 추적하기 위한 것이기 때문에 반드시 포함해야 한다.
User-Agent는 흔히 Content negotiation를 위해 쓰이는데, Content negotiation은 각각 다른 버전의 document를 제공해주는 메커니즘이다. User-Agent는 접속한 유저의 디바이스에 대한 정보와 웹브라우저에 대한 정보를 얻을 수 있기 때문에 서비스 프로바이더쪽에서는 사용자에게 맞춰서 서비스를 제공할 수 있기 때문에 꽤 중요하다고 볼 수 있다.
또한 User-Agent는 웹 크롤러에 의한 기준 중 하나인데, robots.txt 파일을 이용한 웹사이트의 특정 부분에 접근하는 것으로부터 제외하는 기준이다.
robots.txt
robots.txt는 웹사이트에 웹 크롤러같은 로봇들의 접근을 제어하기 위한 규약이다. robots.txt는 웹 사이트의 최상위 경로(=루트)에 있어야한다. 항상 법적인 강제를 가지는 건아니지만, 해당 사이트를 긁어가도 좋다, 아니면 긁어가지 말라라는 것을 명시해놓은 파일이다.
Facebook user agent string
* facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
* facebookexternalhit/1.1
이 user agent를 통해 크롤러가 metadata만 가지고 있는 비공식적인 버전의 페이지를 가져올 수 있다.
* Facebot
Facebot은 광고 성능을 향상시켜주는 페이스북 웹 크롤링 로봇이다. 이는 robots.txt 설정을 존중한다. Facebot은 하루에 몇 번 웹 서버의 robots.txt파일의 변화를 체크한다. 그래서 즉시는 아니지만, 어떤 변화라도 다음의 크롤링에 알려진다.
'Web' 카테고리의 다른 글
가상 호스팅 그리고 Host 헤더(Virtual Hosting and Host Header) (0) | 2016.09.12 |
---|---|
HTTP 헤더 및 요청/응답 과정 (HTTP Headers And the Process of Request/Response) (0) | 2016.09.12 |
웹서버의 이름기반 가상 호스트(Name-based Virtual Host of Web Server like Apache/nginx) (0) | 2016.09.12 |
오픈그래프 규약 (Open Graph Protocol) (0) | 2016.08.26 |
웹 크롤링과 웹 스크래핑의 차이 (The Difference between Web Crawling and Web Scraping) (1) | 2016.08.26 |
- Total
- Today
- Yesterday
- linux
- async
- slf4j
- NGINX
- java
- logback
- object
- log level
- runtime data areas
- good practice
- TaskExecutor
- logging facade
- lood
- webserver
- JVM
- log
- Apache
- logging
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |