Programming Language/Django

Django 11)REST API_1

Sergemeow 2023. 4. 13. 15:36

URI

  • Uniform Resource Identifier(통합 자원 식별자)
  • 인터넷에서 리소스를 식별하는 문자열
  • 가장 일반적인 URI는 웹 주소로 알려진 URL
  • 특정 이름공간에서 이름으로 리소스를 식별하는 URI는 URN

URL

  • Uniform Resource Locator(통합 자원 위치)
  • 웹에서 주어진 리소스의 주소
  • 네트워크 상에 리소스가 어디있는지 주소를 알려주기 위한 약속
    • 이러한 리소스는 HTML, CSS, 이미지 등이 될 수 있음
  • URL은 다음과 같이 여러 부분으로 구성되며 일부는 필수이고 나머지는 선택사항
  • Scheme(or protocol)
    • 브라우저가 리소스를 요청하는데 사용해야하는 프로토콜
    • URL의 첫 부분은 브라우저가 어떤 규약을 사용하는지를 나타냄
    • 기본적으로 웹은 HTTP(S)를 요구하며 메일을 열기위한 mailto:, 파일을 전송하기 위한 ftp: 등 다른 프로토콜도 존재
  • Authority
    • Scheme 다음은 문자 패텬 ://으로 구분된 Authority(권한)이 작성됨
    • Authority는 domain과 port를 모두 포함하며 둘은 :(콜론)으로 구분됨
    1. Domain Name
    • 요청 중인 웹 서버를 나타냄
    • 어떤 웹 서버가 요구되는지를 가리키며 직접 IP주소를 사용하는 것도 가능. 하지만 사람이 외우기 어렵기 때문에 주로 Domain name으로 사용
    • 예를 들어 도메인 google.com의 IP주소는 143.251.42.142
    1. Port
    • 웹 서버의 리소스에 접근하는데 사용되는 기술적인 문(Gate)
    • HTTP 프로토콜의 표준 포트는 다음과 같고 생략이 가능
      • HTTP-80
      • HTTPS-443
    • Django의 경우 8000(80+00)이 기본 포트로 설정되어 있음
    1. Path
    • 웹서버의 리소스 경로
    • 초기에는 실제 파일이 위치한 물리적 위치를 나타내었지만, 오늘날은 실제 위치가 아닌 추상화된 형태의 구조를 표현
    • 예를 들어 /articles/create/가 실제 articles 폴더 안에 create 폴더 안을 나타내는 것은 아님
    1. Parameters
    • 웹 서버에 제공하는 추가적인 데이터
    • 파라미터는 ‘&’ 기호로 구분되는 key-value 쌍 목록
    • 서버는 리소스를 응답하기 전에 이러한 파라미터를 사용하여 추가 작업을 수행할 수 있음
    1. Anchor
    • 리소스의 다른 부분에 대한 앵커
    • 리소스 내부 일종의 “북마크”를 나타내며 브라우저에 해당 북마크 지점에 있는 콘텐츠를 표시. 예를 들어, HTML 문서에서 브라우저는 앵커가 정의한 지점으로 스크롤 함
    • fragment identifier라고 부르는 ‘#’ 이후 부분은 서버에 전송되지 않음
  • URN
    • Uniform Resource Name(통합 자원 이름)
    • URL과 달리 자원의 위치에 영향을 받지 않는 유일한 이름 역할
    • URL의 단점을 극복하기 위해 등장했으며 자원이 어디에 위치한지 여부와 관계없이 이름만으로 자원을 식별
    • 하지만 이름만으로 실제 리소스를 찾는 방법은 보편화 되어있지않아 현재는 URL을 대부분 사용

웹에서의 리소스 식별

  • 자원의 식별자(URI)
    • 자원의 위치로 자원을 식별(URL)
    • 고유한 이름으로 자원을 식별(URN)

'Programming Language > Django' 카테고리의 다른 글

Django 13)REST API_3  (0) 2023.04.18
Django 12)REST API_2  (0) 2023.04.13
Django 10)Authorization/Authentication_2  (0) 2023.04.12
Django 09)Authorization/Authentication_1  (0) 2023.04.12
Django 08)Static/Media  (0) 2023.04.11