HTTP 완벽 가이드 1-2. URL과 리소스


📘 HTTP 완벽 가이드 읽고 정리하기 🐿︎



URL


  • Uniform Resoure Locator

  • 인터넷 리소스를 가리키는 표준이름

  • 브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리킴

    • URL을 이용해 인터넷 상의 리소스를 찾고 사용하며 공유 할 수 있는 것

    • URN은 리소스가 어디 존재하든 상관없이 이름만으로 리소스를 식별 / URL은 리소스가 어디 있는지 설명해 리소스를 식별

  • URL을 통해 HTTP 및 다른 프로토콜을 통해 접근 가능 (사용자 브라우저에 URL 입력 -> 브라우저 화면 뒤에서 사용자가 원하는 리소스를 얻기 위해 적절한 프로토콜 사용, 메시지 전송)

  • 대부분의 URL 은 스킴://서버위치/경로 구조로 이루어짐

    1. 스킴(scheme)

      • 웹 클라이언트가 리소스에 어떻게 접근하는지 알려줌

      • URL이 HTTP 프로토콜 사용

    2. 서버의 위치(host)

      • 리소스가 어디에 호스팅 되어 있는지 알려줌
    3. 리소스의 경로(path)

      • 서버에 존재하는 로컬 리소스들 중 요청받은 리소스가 무엇인지 알려줌
  • URL은 HTTP 프로토콜이 아닌 다른 프로토콜을 사용해 인터넷에 있는 어떤 리소스든지 가리킬 수 있음

    • 절대URL : 리소스에 접근하는데 필요한 모든 정보를 가짐

    • 상대URL

      • URL을 짧게 표시하는 방식

      • 프래그먼트이거나 URL의 일부

      • 상대 URL을 접근하는데 필요한 모든 정보를 얻기 위해서는 기저(base)URL을 사용해야 함

      • URL을 처리하는 애플리케이션(ex) 브라우저)은 상대URL과 절대URL간에 상호 변환을 할 수 있어야 함



URL 문법


  • 대부분의 URL 스킴 문법은 일반적으로 9개 부분으로 나뉨

    <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<fragment>


Scheme


  • 애플리케이션이 어떤 프로토콜을 사용해 리소스를 요청해야 하는지 알려줌

  • 주어진 리소스에 어떻게 접근하는지 알려주는 중요한 정보

  • 스킴 명은 대소문자를 가리지 않음

  • 스킴의 종류 : http, https, mailto, ftp, file, telnet, …


Host / Port


  • 호스트

    • 접근하려고 하는 리소스를 가지고 있는 인터넷상의 호스트 장비

    • 호스트명(www.sample.com)이나 IP(127.0.0.1)주소로 제공

  • 포트

    • 서버가 열어놓은 네트워크 포트

    • HTTP 기본 포트 : 80


Username / Password


  • FTP 서버와 같이 자신이 가지고 있는 데이터에 접근을 허용하기 전 사용자 이름과 비밀번호를 요구하는 서버 존재

  • 사용자 이름과 비밀번호를 기술하지 않고 FTP URL에 접근할 경우, 사용자 이름은 ‘anonymous’을 기본값으로, 비밀번호는 브라우저마다 가지고 있는 기본값을 사용함


Path


  • 경로 컴포넌트는 서버가 리소스의 위치를 찾는 데 사용하는 정보

  • ’/’ 문자를 기준으로 경로 조각으로 나뉨


Parameter


  • 애플리케이션이 서버에 정확한 요청을 하기 위해 필요한 입력 파라미터를 받는데

  • 이름=값 쌍의 리스트, 나머지 앞 부분으로부터 ‘;’로 구분

  • 각 경로 조각은 자체 파라미터를 가질 수 있음


Query


  • 데이터베이스 같은 서비스들은 요청받을 리소스 형식의 범위를 좁히기 위해 질문이나 질의를 받음

  • ’?’ 이후 생성되는 문자열

  • 질의 컴포넌트는 게이트웨이(다른 애플리케이션에 접근하려고 할 때 거치는 통로)를 가리키는 URL의 경로 컴포넌트와 함께 전달

  • 편의상 많은 게이트웨이가 ‘&’로 나뉜 ‘이름=값’ 쌍 형식의 질의 문자열 사용


Fragment


  • 리소스의 특정 부분을 가리킬 수 있도록 프래그먼트 컴포넌트 제공 (ex) HTML 문서 내의 특정 이미지나 일부분을 가리킬 수 있음)

  • ’#’ 이후 생성되는 문자열

  • 브라우저가 서버로부터 전체 리소스를 내려받은 후 프래그먼트를 사용해 보고자 하는 리소스의 일부를 보여줌 (서버에 프래그먼트를 전달하지는 않음)



HTTPS


  • Hypertext Transfer Protocol Secure

  • HTTP에 데이터 암호화가 추가된 프로토콜

  • https 스킴은 http 스킴과 거의 유사

  • HTTP 커넥션 양 끝단에서 암호화하기 위해 넷스케이프에서 개발한 소켓 계층(Secure Sockets Layer, SSL)을 사용

  • 기본 포트값 : 443

Categories:

HTTP