콘텐츠로 이동

방화벽과 User-Agent

로그인이 되고 TLS도 통과했는데 요청이 이상하게 실패하는 경우가 있습니다. 원인은 요청 헤더의 User-Agent입니다. 포털 흐름에서 확인한 동작은 두 가지입니다.

상황 결과
User-Agent를 보내지 않음 classic.sejong.ac.kr이 SSO 이후 404를 돌려줍니다
라이브러리 기본값 (예: Python-urllib) sjpt.sejong.ac.kr의 방화벽이 막고 「Alert!!!」 HTML 페이지를 돌려줍니다

둘 다 코드가 올바른데도 응답만 이상하므로, 모르면 파싱이나 로그인 문제로 오해하기 쉽습니다.

비어 있지 않고 기본값도 아닌, 식별 가능한 User-Agent를 모든 요청에 보냅니다. 형식은 계약에 이렇게 정해져 있습니다.

pro-sejongpeia-<언어>/<버전>
  • Python: pro-sejongpeia-python/<버전>
  • Node.js: pro-sejongpeia-node/<버전>
  • Java 공개 데이터 호출: pro-sejongpeia-java
  • 인증 요청의 User-Agent 형식은 위 계약을 따릅니다.
  • 모든 HTTP 클라이언트에 비어 있지 않은 고유한 User-Agent를 설정하세요.
  • 브라우저를 흉내 내는 대신 라이브러리 이름과 버전이 보이게 두면, 문제가 생겼을 때 서로 원인을 찾기 쉽습니다.
  • 404나 「Alert!!!」 페이지가 오면 파서보다 먼저 헤더를 의심하세요.