↗주소모음JUSOMOUM
☆ 내 링크

JUSOMOUM ENGINEERING NOTES

열리는 링크인데,
왜 자동 검사는 실패할까요?

주소모음과 링크모음을 운영하며 정리한 링크 상태 판정 방식입니다. 요청 결과, 브라우저 관찰, 확인 시각을 함께 다룹니다.

여러 웹사이트를 분야별 카드로 정리한 브라우저 화면

자동 검사에서 403이 나왔다고 링크를 곧바로 지우면, 실제로 열리는 주소까지 놓칠 수 있습니다. 반대로 클릭 횟수만 보고 정상으로 표시하면 목적지 화면을 확인하지 않은 채 독자에게 확신을 주게 됩니다.

1. 요청 결과와 실제 접속을 구분합니다

403은 서버가 요청을 이해했지만 처리를 거부했다는 응답입니다. 그 요청의 결과만으로 다른 환경의 브라우저에서도 화면이 열리지 않는다고 결론 내릴 수는 없습니다. 이 구분은 HTTP 오류를 우회하는 방법이 아니라, 관측한 범위 안에서 링크를 관리하는 방법입니다.

HTTP 의미 참고: MDN 403 Forbidden

사이트에서 외부 링크를 눌렀다는 사실도 화면의 정상 로딩을 뜻하지 않습니다. 다른 출처의 문서 접근에는 브라우저의 제약이 있으므로 JUSOMOUM은 클릭 이벤트를 외부 페이지의 성공 증거로 저장하지 않습니다.

브라우저 제약 참고: MDN 동일 출처 정책

2. 실패 응답을 ‘확인 보류’로 남깁니다

자동 요청2xx 응답HTTP 확인 근거 기록
자동 요청401 · 403 · 429자동 확인 제한으로 기록
별도 관찰브라우저 화면 확인정확한 주소·시각·메모 기록

기타 HTTP 오류, 연결 실패와 검토되지 않은 리다이렉트도 내부 검토 대상으로 남깁니다. 자동 확인이 제한된 응답만으로 공개 목록에 접속 불가 경고를 붙이지 않습니다. 네트워크 검사에서는 TLS 검증을 유지하고, 카탈로그에 등록된 HTTPS 주소와 허용된 리다이렉트 호스트만 다룹니다.

성공 근거에는 유효기간이 있습니다

  • HTTP 성공: 확인 후 2시간 미만.
  • 브라우저 관찰: 같은 사이트 ID·정확히 같은 URL이며 메모가 있고, 확인 후 24시간 미만.
  • 다시 검사하다 실패해도 이전 성공 시각을 새 검사 시각으로 바꾸지 않습니다.
  • 주소가 바뀌거나 기록이 만료되면 이전 근거를 그대로 쓰지 않습니다.

이 시간은 JUSOMOUM의 운영 선택입니다. 다른 서비스도 반드시 같은 시간을 써야 한다는 표준은 아닙니다.

3. 가상 입력으로 같은 판정을 재현합니다

아래 자료에는 현재 판정 함수의 코드와 가상 입력 6개가 들어 있습니다. example.com과 고정 시각 100000을 사용합니다. 외부 사이트에 요청하거나 브라우저 기록을 읽지 않으며, 특정 사이트의 실제 장애율을 측정한 예제는 아닙니다.

ZIP을 풀고 Python 3로 실행하면 됩니다. 별도 패키지 설치는 필요하지 않습니다.

python3 reproduce.py
현재 시각 100000에서의 가상 판정 결과
입력 상황내부 판정근거 시각
403만 관측확인 보류100000
60초 전 브라우저 확인성공 근거 유지99940
24시간이 된 브라우저 기록확인 보류100000
다른 URL의 확인 기록확인 보류100000
60초 전 HTTP 성공성공 근거 유지99940
2시간이 된 HTTP 성공확인 보류100000

근거가 유지되는 두 사례의 시각은 99940입니다. 실패한 재검사 시각 100000으로 덮어쓰지 않습니다. 보류 사례의 시각은 이번 관측 시각이며, 성공한 시각으로 해석하면 안 됩니다.

4. 확인 표시가 보증하지 않는 것

최근 성공 기록이 있는 동안에도 실제 장애가 발생할 수 있습니다. 2xx 응답은 내용의 정확성·최신성·안전성까지 증명하지 않습니다. 브라우저 메모의 존재는 검사하지만, 코드가 화면 관찰의 진위를 독립적으로 확인하지는 않습니다. 새 브라우저 실패 기록으로 기존 성공을 즉시 취소하는 기능도 현재 구현에는 없습니다.

공개 화면은 유효한 성공 근거의 ‘접속 확인’과, 자동 요청 제한 또는 이동 응답만 관측한 ‘사이트 응답 확인’을 구분합니다. 응답만 확인한 표시는 최종 화면의 정상 접속을 뜻하지 않으며, 펼치면 관측 범위를 설명합니다. 둘 다 없으면 ‘공식 링크’로 표시합니다. 독자가 현재 시점의 접속을 직접 확인할 수 있도록 공식 링크는 그대로 제공합니다. 자료 검토일과 접속 확인 시각은 서로 다른 정보입니다.

링크 목록을 관리할 때 남길 기록

  1. 등록한 정확한 URL과 이동한 최종 주소.
  2. 관찰 방법: 서버 HTTP 요청인지 실제 브라우저 화면인지.
  3. 확인 시각과 만료 규칙.
  4. 오류 코드·사유와 사람이 실제로 본 화면의 짧은 메모.
  5. 주소 변경 시 이전 근거를 무효화했는지.

이 자료는 공개 구현을 설명하는 원본 기술 기록입니다. 예제의 결과는 판정 함수의 재현이며 전체 네트워크 검사·UI·외부 사이트 접속을 검증한 보고서가 아닙니다.

5. 페이지가 열려도 필요한 내용은 사라질 수 있습니다

주소를 보관할 때는 HTTP 응답과 문서 내용을 따로 기록해야 합니다. 문서가 열려도 안내문으로 바뀌어 원래의 링크가 없어질 수 있고, 반대로 링크가 있어도 검색 제외 지시가 붙어 있을 수 있습니다. 아래 도구는 저장해 둔 HTML에서 정확한 목적지 링크와 문서의 robots 지시를 분리해서 확인합니다.

저장한 HTML 확인 도구 받기 ↓ · 가상 입력 3건의 결과 JSON

python3 link_source_audit.py page.html https://source.example/page https://target.example/
  • 링크가 있는 문서: 정확한 href와 rel을 출력합니다.
  • 내용이 안내문으로 대체된 문서: URL 문자열만 있어도 실제 앵커가 없으면 링크 없음으로 기록합니다.
  • noindex와 링크가 함께 있는 문서: 링크 존재와 검색 제외 지시를 각각 기록합니다.

Python 3 표준 라이브러리만 사용합니다. 파일은 기기 안에서 읽으며 외부 요청이나 스크립트 실행을 하지 않습니다. 상대 주소와 HTML base를 반영하고, 프래그먼트는 제외하되 쿼리는 구분합니다. 응답 헤더·robots.txt·자바스크립트로 생성된 링크와 실제 Google 색인은 검사하지 않습니다. noindex가 없다는 결과도 색인 또는 순위 상승의 보증이 아닙니다.

필요한 링크를 직접 찾아보세요

공식 사이트 주소모음 →분야별 링크모음 →북마크 만들기 →

주소 선정·접속 확인 기준 보기 · 이용 가이드

이 페이지 링크

주소를 선택해 복사할 수 있습니다.

주소모음 · JUSOMOUM

홈 화면에 추가

저장한 바로가기로 주소모음을 빠르게 열어보세요.