AI 어시스턴트가 웹 페이지를 가져오는 방법: ChatGPT, Claude, Gemini 등의 Nginx 로그 분석

✍️ OpenClawRadar📅 게시일: April 20, 2026🔗 Source
AI 어시스턴트가 웹 페이지를 가져오는 방법: ChatGPT, Claude, Gemini 등의 Nginx 로그 분석
Ad

한 개발자가 사용자가 특정 사이트에 대해 질문할 때 AI 어시스턴트가 웹 페이지를 실시간으로 가져오는지, 아니면 캐시된 인덱스에서 답변하는지 확인하기 위한 실용적인 실험을 수행했습니다. 맞춤형 Nginx 로깅을 설정하고 주요 챗봇에 고유한 쿼리 문자열을 포함한 프롬프트를 제공함으로써, 검색 행동에 대한 명확한 증거를 포착했습니다.

탐사 설정

이 테스트는 기본 결합 로그가 압축하는 헤더를 캡처하기 위해 맞춤형 Nginx 로그 형식을 사용했습니다:

log_format ai_probe escape=json '{' '"time":"$time_iso8601",' '"ip":"$remote_addr",' '"uri":"$request_uri",' '"status":$status,' '"ua":"$http_user_agent",' '"referer":"$http_referer",' '"accept":"$http_accept"' '}';

각 어시스턴트는 고유한 쿼리 문자열(/?ai=chatgpt, /?ai=claude 등)을 가리키는 프롬프트를 받아 귀속을 간단하게 했습니다. 일시적인 캐시 히트가 검색 패턴을 가리는 것을 피하기 위해 세션 간에 프롬프트를 재실행했습니다.

전용 사용자 에이전트로 자신을 알린 어시스턴트

다섯 가지 어시스턴트가 검색 특정 신호와 함께 도착했습니다:

  • ChatGPT: ChatGPT-User/1.0 (Chrome 스타일 Accept, robots.txt 확인 없음)
  • Claude: Claude-User/1.0 (*/* Accept, 항상 robots.txt를 먼저 확인)
  • Perplexity: Perplexity-User/1.0 (빈 Accept 헤더)
  • Meta AI: meta-webindexer/1.1 (*/* Accept, robots.txt 확인 없음)
  • Manus: Manus-User/1.0 접미사가 붙은 Chrome UA (Chrome 스타일 Accept)

다섯 가지 모두 원본에서 페이지를 직접 가져왔습니다.

자신을 알리지 않은 어시스턴트

  • Gemini: 프롬프트 창 동안 Google 사용자 에이전트로부터의 요청이 전혀 없었습니다. 라이브 제공자 측 가져오기를 수행하지 않고 전적으로 자체 인덱스에서 답변했습니다.
  • Copilot: 일반 Chrome 135 on Linux x86_64, 전체 브라우저 스타일 Accept. 가져왔지만 인간 방문자와 구별할 수 없습니다.
  • Grok: 일반 Mac Safari 26 및 일반 Mac Chrome 143. 가져왔지만 인간 방문자와 구별할 수 없습니다.
Ad

관찰된 주요 행동 패턴

ChatGPT: 동일한 버스트 내에서 여러 소스 IP로부터의 히트, 일반적으로 인용할 페이지를 결정하는 동안 여러 후보 페이지를 한 번에 가져옵니다. 24시간 생산 창에서 ChatGPT-User 요청은 23.98.x.x, 20.215.x.x, 40.67.x.x, 51.8.x.x, 51.107.x.x의 다섯 가지 별개의 Azure 범위에서 왔습니다.

Claude: 항상 페이지 가져오기 전에 /robots.txt를 가져옵니다. Anthropic 소유의 IP 공간인 216.73.216.0/24 범위에서 옵니다. 후행 슬래시 정규화를 포함하여 리디렉션을 깔끔하게 따릅니다. Anthropic은 세 가지 별개의 봇을 운영합니다: Claude-User(사용자 시작 검색), Claude-SearchBot(검색 인덱스), ClaudeBot(훈련 크롤러).

Perplexity: Accept 헤더나 리퍼러 없이 직접 가져오기. PerplexityBot(그들의 검색 인덱싱 크롤러)은 별도로 /robots.txt를 핑했습니다. 저자는 Perplexity가 라이브로 검색할 수 있지만 자체 인덱스에서 답변할 수 있기 때문에 반드시 그럴 필요는 없다고 언급합니다.

Gemini: 관찰된 라이브 제공자 측 가져오기가 없습니다. Google은 Gemini를 위한 검색 특정 사용자 에이전트를 공개하지 않으며, Google의 크롤러 문서에 따르면 AI 개요 및 AI 모드는 Googlebot이 채우는 동일한 검색 인덱스를 기반으로 합니다.

이 실험은 두 가지 신호를 구분합니다: 제공자 측 가져오기(어시스턴트가 전용 사용자 에이전트로 원본에 히트)와 실제 클릭스루 방문(사람이 AI 답변을 읽고 인용을 클릭하여 어시스턴트를 리퍼러로 하는 일반 브라우저로 도착). 둘을 단일 "AI 트래픽" 숫자로 결합하면 이 유용한 구분이 숨겨집니다.

📖 전체 Source 읽기: HN AI Agents

Ad

👀 See Also

Doc Harness: 세션 간 프로젝트 상태 유지를 위한 Claude 코드 스킬
Tools

Doc Harness: 세션 간 프로젝트 상태 유지를 위한 Claude 코드 스킬

Doc Harness는 AI 에이전트가 세션 간에 프로젝트 컨텍스트를 유지하도록 돕는 다섯 개의 구조화된 파일로 구성된 경량 문서 시스템을 생성하는 Claude Code 스킬입니다. 이는 컨텍스트 재설정, 규칙 잊어버림, 새로운 에이전트에게 프로젝트를 다시 설명해야 하는 문제를 해결합니다.

OpenClawRadar
클로드 태그: 멀티플레이어 AI 협업을 위한 슬랙의 @Claude
Tools

클로드 태그: 멀티플레이어 AI 협업을 위한 슬랙의 @Claude

Anthropic, Slack에서 Claude Tag 출시 — 채널에서 @Claude를 태그하고, 도구를 부여하고, 비동기 작업을 위임하세요. 제품 팀 코드의 65%가 Claude로 생성되었습니다.

OpenClawRadar
제이크 벤치마크 v1: OpenClaw AI 에이전트를 위한 로컬 LLM 성능 테스트
Tools

제이크 벤치마크 v1: OpenClaw AI 에이전트를 위한 로컬 LLM 성능 테스트

한 개발자가 OpenClaw를 사용해 AI 에이전트로 기능하는 7개의 로컬 LLM을 이메일 처리, 회의 일정 잡기, 피싱 탐지 등 22가지 실용적인 작업으로 테스트했습니다. 결과는 Qwen 27B의 59.4%에서 Nemotron 30B의 1.6%까지 다양했으며, 상세한 대화 로그를 확인할 수 있습니다.

OpenClawRadar
LLM 에이전트를 위한 복잡한 검색 파이프라인을 간단한 git 쉘 명령어로 대체하기
Tools

LLM 에이전트를 위한 복잡한 검색 파이프라인을 간단한 git 쉘 명령어로 대체하기

한 개발자가 AI 에이전트 검색 파이프라인(sentence-transformers, rank-bm25, 2단계 LLM 파이프라인) 전체를 git 저장소에 대해 읽기 전용 셸 명령을 실행할 수 있는 단일 도구로 교체하여 Docker 이미지 크기를 약 3GB 줄이고 타임아웃 문제를 해결했습니다.

OpenClawRadar