HTTP 302 redirect

브라우저 자동 재시도

얼마전 oauth를 공부하다 잘 이해가 안되는 부분이 있었다. 아주 기본적인것인데 정확히 머리속에 정리가 되지 않고 있었던걸 몇일 연구해보고 정리한다.

웹페이지에 요청을 보내면 무조건 결과가 돌아온다. 그 결과값중 302가 있다.

https://developer.mozilla.org/ko/docs/Web/HTTP/Status/302

여기를 읽어보면 다음과 같다.

하이퍼텍스트 전송 프로토콜 (HTTP)의 302 Found 리다이렉트 상태 응답 코드는 클라이언트가 요청한 리소스가 Location 헤더에 주어진 URL에 일시적으로 이동되었음을 가리킨다. 브라우저는 사용자를 이 URL의 페이지로 리다이렉트시키지만 검색 엔진은 그 리소스가 일시적으로 이동되었다고 해서 그에 대한 링크를 갱신하지는 않는다 (‘SEO 관점’ 에서 말하자면, 링크 주스(Link Juice)가 새로운 URL로 보내지지는 않는다).

복잡한건 들어내고 location 헤더에 url을 가진 결과가 302인 요청 결과는 브라우저에서 자동으로 그 url로 리퀘스트를 보내버린다.

그리고 그 서버에서 다시 처리하고 결과를 받는다.

그러니 결과적으로 1번의 호출인데 2번의 요청이 발생한다는것이다.

사파리 vs 크롬

그리고 사파리의 경우에는 크롬과 다른 처리 방식이 있었던거 같다. 같은 api 에서 redirect하는 코드인데 크롬은 잘되고 사파리는 잘 안된 경우가 있엇다.

모바일 앱에서 deep link의 문제

universal link나 applink등 특정 url을 앱으로 돌려주는 딥링크가 302의 경우에는 실행이 안되는 문제가 있었다. 그래서 schema로 바꿔서 처리했더니 잘 처리가 되었다.

teamsmiley's profile image

teamsmiley

2020-10-28 00:00

Read more posts by this author