리다이렉트 URI
카카오 소셜로그인 구현을 하다 보면 redirect uri를 입력해줘야 한다. 프론트에서는 KAKAP API server에 인가 코드를 요청하고, redirect uri로 인가코드를 받는다. 그리고 이 받은 코드를 백으로 전달해서 JWT를 받게 된다.
그런데 URL도 아니고, URI란 무엇일까?
URI vs URL vs URN
URI → 로케이터(locator), 이름(name) 또는 둘 모두를 사용할 수 있다.
URI(Uniform Resource Identifier)
- Uniform: 리소스를 식별하는 통일된 방식
- Resource: 자원. URI로 식별할 수 있는 모든 것
- Identifier: 다른 항목과 구분하는데 필요한 정보
URL(Uniform Resource Locator)
- Locator: 리소스가 있는 위치를 지정
URN(Uniform Resource Name)
- Name: 리소스에 이름을 부여
- 위치는 변할 수 있지만, 이름은 변하지 않는다.
URI, URL, URN 비교해보기
- http://ham.com/user
→ URL, URI - http://ham.com/user/107
→ URI (끝부분의 /107은 식별자로 이용된다) - http://ham.com/user?id=107
→ URI (끝부분의 ?id=107은 식별자로 이용된다) - isbn:1234567
→ URN (국제표준도서번호)
URI의 문법
프로토콜 / 호스트명 / 포트번호 / path / query parameter
scheme
- 주로 프로토콜을 사용
- 프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
userinfo
- URL에 사용자정보를 포함해서 인증
- 거의 사용하지 않음
host
- 호스트명
- 도메인 또는 IP 주소를 직접 사용가능
PORT
- 접속 포트
- 일반적으로 생략, 생략 시 http는 80, https는 443
path
- 리소스의 경로, 계층적 구조
query
- key=value 형태
- ?로 시작, &로 추가 가능
- query parameter(웹서버에 제공하는 파라미터), query string(문자 형태) 등으로 불림
fragment
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보 아님
결론
다시 카카오 소셜로그인으로 돌아가서,
우리는 등록한 redirect uri쪽으로 인가 코드(code=dn12k... 형태)를 받을 수 있다.
즉, 이러한 code는 고유 식별자의 역할을 하게 되며, URI라고 이름붙여진 것이다.
참고자료
'TIL > 네트워크' 카테고리의 다른 글
[240216] HTTP 메서드 (0) | 2024.02.16 |
---|---|
[240213] HTTP 기초 (0) | 2024.02.13 |
[240210] 주소창에 www.google.com을 입력하면 발생하는 일 (0) | 2024.02.10 |
[240209] 프로토콜 (0) | 2024.02.09 |
[240203] CDN이란? (1) | 2024.02.03 |