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

한 개발자가 사용자가 특정 사이트에 대해 질문할 때 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. 가져왔지만 인간 방문자와 구별할 수 없습니다.
관찰된 주요 행동 패턴
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
👀 See Also

로컬 MCP 서버, 클로드를 클라우드나 토큰 없이 Mac 앱에 연결합니다
Local MCP는 macOS용 네이티브 MCP 서버로, 클라우드 처리나 API 토큰 없이 Mac의 Mail, Calendar, Teams, OneDrive 데이터에 Claude Desktop, Cursor, Windsurf, VS Code가 접근할 수 있게 해줍니다.

구글, 리눅스 커널 패치용 AI 코드 리뷰 에이전트 '사시코(Sashiko)' 공개
구글 엔지니어들이 리눅스 커널을 위해 설계된 에이전트형 AI 코드 리뷰 시스템 '사시코(Sashiko)'를 오픈소스로 공개했습니다. 이 시스템은 최근 업스트림 이슈 1,000건 중 인간 리뷰어들이 놓친 버그의 53%를 발견했습니다.

Claude-context-lint 도구는 Claude Code 프로젝트의 토큰 오버헤드를 감사합니다.
claude-context-lint라는 새로운 도구가 Claude Code 프로젝트를 스캔하여 사용자 입력 전에 CLAUDE.md 파일, 스킬, MCP 서버 및 시스템 프롬프트가 얼마나 많은 컨텍스트 윈도우를 소비하는지 보여줍니다. 이 도구는 토큰 사용량을 줄이기 위한 구체적인 권장 사항을 제공합니다.

Claude Skill: TypeScript, Rust, Swift, Go, JS, Postgres 및 감사를 위한 12가지 엄격 코딩 규칙 패키지
12개의 마크다운 파일로, TS, Rust, Swift, Go, JS, Postgres, 보안, 성능, 테스트, 코드 리뷰, GitHub 표준, git 커밋에 대한 독단적이고 버전을 인식하는 규칙들을 포함합니다. MIT 라이선스, 무료, 회원가입 불필요.