URI

TopOfTheHead·2025년 10월 26일

CS/웹 관련 공부

목록 보기
4/7

통합자원식별자( URI : Uniform Resource Identifier )
네트워크자원 ( 웹페이지, 이미지, 동영상 )을 고유하게 식별하기위한 문자열 주소
ex ) jdbc://[user[:password]@]localhost:3306/hello?charset=URF-8#example
URI계정, 권한 등을 부여하여 JDBC를 통해 연결할 수 있다.

URIkebab-case에 따라 작성

URL, URN \in URI

  • URL( Uniform Resource Locator )
    네트워크자원위치 정보를 기반으로 식별하는 URI
    위치 기반 식별로서 자원을 식별하며 일반적으로 웹주소를 의미

    프로토콜( = http, https, ftp ) 포함

    scheme, hostname, url-path를 포함
    http://www.naver.com/login

    REST API : 효과적으로 서버자원에 접근하기위한 URL 작성 방법론

  • URN( Uniform Resource Name )
    URL표준 포멧 중 하나로서 자원이름을 기반으로 식별하는 URI
    네트워크 상에서 자원을 영구적이고 유일하게 식별할 수 있는 URI
urn:isbn:9780132350884   (책 ISBN)
urn:uuid:123e4567-e89b-12d3-a456-426614174000

URL의 구조

프로토콜://host:port/path?querystring

  • protocol( = scheme )
    。통신을 수행할 프로토콜을 설정
    에서는 보통 http / https를 사용

  • host name DNS - hostname
    。인터넷 상에서 Host를 식별하는데 사용하는 식별자 중 하나
    ▶ 일반적으로 domain name / IP Address를 사용
    ex ) www.facebook.com or 192.168.0.1

    localhost
    127.0.0.1hostname
    127.0.0.1:8080/ = localhost:8080/



  • port 포트
    네트워크 상에서 단일 호스트 내 여러 서비스들을 구별하기위해 붙이는 16비트 숫자( 0 ~ 65535 )

    URL포트번호를 생략해도 되는 경우
    웹 브라우저는 보통 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를 사용 시 관례적으로 URL/api/자원명으로 시작하도록 설정

    백엔드 기준의 도메인( = 비즈니스모델명 )을 서버 API URLpath명칭으로 지정
    비즈니스모델명 : user, notice, product, stock, ...
    ex ) 서버 어플리케이션자원 접근 시 localhost:8080/api/users으로 자원에 접근하도록 API를 구성
    user등의 도메인의 경우 복수형( users )로 설정



  • query string : ?키=값
    。특정 조건의 자원을 가져오기위한 질의를 수행
    Spring에서는 @RequestParam을 통해 해당 값을 수신

    。여러 조건의 질의를 수행하는 경우 &( AND )를 사용
    ▶ ex) ?gender=male1&age=28&...

    GETHTTP Message Body를 사용하지 못하므로, inputquery string으로 전달
    URL는 최대 255 byte 작성가능
    ▶ 방대한 양의 input을 전송 시 또는 민감정보를 전송 시 POST를 통해 HTTP Message Body를 이용하여 전송

    %한글 문자열 구분

  • fragment : #프래그먼트명
    #뒤에 붙는 값으로서, 서버로 전달되지 않고 브라우저에서만 사용되는 값
    페이지 내부 위치 이동 용도로 사용
    ex ) https://example.com/page#section1
profile
공부기록 블로그

0개의 댓글