통합자원식별자(URI: Uniform Resource Identifier )
。네트워크상자원(웹페이지,이미지,동영상)을 고유하게 식별하기위한문자열
。URI는kebab-case에 따라 작성
。URI의 하위개념 :URL,URN
URL( Uniform Resource Locator )
。네트워크상자원이 위치한 정보를 지시
。scheme,hostname,url-path까지만 포함
▶http://www.naver.com/login
。FTP,SMTP등 다른프로토콜의 사용이 가능
。REST API: 효과적으로서버내자원에 접근하기위한URL 작성 방법론
URN( Uniform Resource Name )
。URL의표준 포멧중 하나로서자원을 특정하는URI
▶네트워크상에서자원을 영구적이고 유일하게 식별할 수 있는URI
URI의 구조
。프로토콜://host:port/path?querystring
protocol( =scheme)
。통신을 수행할프로토콜을 설정
▶웹에서는 보통http/https를 사용
host nameDNS - hostname
。인터넷 상에서Host를 식별하는데 사용하는식별자중 하나
▶ 일반적으로domain name/IP Address를 사용
ex )www.facebook.comor192.168.0.1
localhost
。127.0.0.1의hostname
▶127.0.0.1:8080/=localhost:8080/
port포트
。네트워크상에서 단일호스트내 여러서비스들을 구별하기위해 붙이는16비트 숫자(0 ~ 65535)
URI상포트번호를 생략해도 되는 경우
。웹 브라우저는 보통http 프로토콜에 대해서80 포트,https 프로토콜에 대해서443 포트로 전송하도록 기본적으로 설정되어 해당포트로 접근하는 경우포트번호를 생략하고IP주소만 입력하여 접근이 가능.
▶https://www.naver.com:443/=https://www.naver.com/
▶http://localhost:80/=http://localhost/
。단.IP 주소상Host의 다른서비스의포트번호로 접근할 필요가 있는 경우 별도로 명시
ex )http://localhost:8080/
path:/도메인명
。서버의루트 디렉터리(/)부터 시작하여자원이 위치한경로또는파일명을 지시
▶Spring에서는@PathVariable을 통해 해당 값을 수신
API설계 시 주의사항
。API를 사용 시 관례적으로URI는/api/자원명으로 시작하도록 설정
。백엔드기준의도메인( =비즈니스모델명)을서버 API URI의path명칭으로 지정
▶비즈니스모델명:user,notice,product,stock, ...
ex )서버 어플리케이션내자원접근 시localhost:8080/api/users으로 자원에 접근하도록API를 구성
▶user등의도메인의 경우복수형(users)로 설정
query string:?키=값
。특정 조건의자원을 가져오기위한질의를 수행
▶Spring에서는@RequestParam을 통해 해당 값을 수신
。여러 조건의질의를 수행하는 경우&(AND)를 사용
▶ ex)?gender=male1&age=28&...
。GET은HTTP Message Body를 사용하지 못하므로,input을query string으로 전달
▶URI는 최대255 byte작성가능
▶ 방대한 양의input을 전송 시 또는 민감정보를 전송 시POST를 통해HTTP Message Body를 이용하여 전송