API 호출시
301 Moved Permanently
오류 해결방법
요즘 회사에서 다양한 업체의 API 연동을 하고있다.
API 연동 작업 후 호출을 하면,
301 Moved Permanently
위와 같은 오류가 종종 발생하여
정리를 해보려고 한다.
우선 HTTP응답에 대해 알아보자.
클라이언트(웹 브라우저)에서 서버에 어떠한 요청(Request)를 하면
서버는 응답(Response)를 보내주는데,
정상적으로 처리가 완료 되면 성공 응답이 돌아오고,
정상적으로 처리가 되지 않는 경우에는 실패 응답이 돌아온다.
HTTP 응답 상태코드에 대해서 간단히 알아보자.
상태 코드는 3자리 숫자로 만들어져 있으며,
첫번째 자리는 1에서 5까지 제공된다.
1xx(정보) : 요청을 받았으며 프로세스를 계속 진행합니다.
2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용하였습니다.
3xx(리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요합니다.
4xx(클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.
5xx(서버 오류) : 서버가 명백히 유효한 요청에 대한 충족을 실패했습니다.
오늘 우리가 더 자세하게 알아볼
HTTP 응답 상태코드 3XX번대의
301에 대해 자세하게 다뤄보자.
HTTP/1.1 : 301 Moved Permanently
HTTP 응답 상태 코드 : 301 Moved Permanently
이 응답 코드는
Permanently라는 뜻이 영구히, 영구적인 이라는 뜻이므로, 영구적으로 이동한다는 것이다.
요청된 리소스가 영구적으로 이동 페이지로 이동되었다는 것이다.
(= 요청한 리소스의 URI가 변경되었음을 의미)
영구적인 URL 리다이렉션을 위해 사용되며
즉, 응답을 수신하는 URL을 사용하는 현재의 링크나 레코드가 업데이트되어야 함을 의미한다.
이 새 URL은 응답에 포함된 위치 필드에 지정되어야 한다.
301 리다이렉트는 사용자가 HTTP를 HTTPS로 업그레이드하게 만드는 최상의 방법으로 간주된다.
- 위키백과
301 오류에 대한 개념을 알아보았으니,
어떤 상황에 이 오류를 발견하였고 해결한 방법을 공유하려고 한다.
🔍 해결 과정
업체에서 안내해준
API URL은 http://XXX.XXXX 이다.
요청 가이드에 맞춰, 연동 작업을 마무리 한 후
서버를 실행했는데 (= API를 호출)
301 Moved Permanently 응답이 왔다.
해당 업체에서 http가 아닌 https로 만 받을 수 있게 설정을 해놓은 것 이였다.
그래서 https로 수정하니 정상적으로 API 호출이 되었다.
(가이드 작성 좀 잘 해주세요..ㅎㅎ)
그리고,
https로 연동을 해야하는 상황이라면
업체의 방화벽 확인 여부
또는
443 포트가 열려있는지
확인이 필요하다.
🔍 결론
http://로 연동 했을 시 이러한 오류가 발생하면
https:// 로 수정을 하면 오류가 해결이 된다.
https로 바꿨는데 SSL 등 보안 관련 오류가 발생한다면 ,
제공해준 업체에 방화벽 확인을 하면 된다.
SSL(Secure Socket Layer)이란?
개인정보 보호, 인증, 데이터 무결성을 보장하기 위해서 Netscape가 1995년 개발했다.
SSL의 인지도가 월등히 높고 사용량이 많아서 대게 SSL/TLS를 SSL로 부르기도 한다.
'오류 분석' 카테고리의 다른 글
[오류/SQL] MyBatis 마이바티스 오류 - TypeException 부적합한 열 인덱스 (10) | 2024.03.06 |
---|---|
[Redis] 레디스 비밀번호 오류 해결 - ERR invalid password, ERR Client sent AUTH, but no password is set, (error) noauth authentication required (3) | 2024.02.17 |
[오류] SSL Exception - SSL 인증 오류 (Feat.https) (6) | 2024.01.26 |
[오류] HTTP 응답 오류 - 415 Unsupported Media Type (2) | 2024.01.13 |
[오류/Git] 깃 - Gitignore를 안해서 발생한 오류 (0) | 2024.01.12 |