• 인터넷 탐색하기

    • URI : URL + URN
  • URL 문법

    • https://user:[email protected]:8080/postview/blog/00014;param?test#fragment

      컴포넌트 설명 기본값
      https:// 스킴 서버에 접속하기 위한 프로토콜
      user 사용자 이름 서버에 로그인하기 위한 사용자 이름 anonymous
      :password 비밀번호 서버에 로그인하기 위한 비밀번호
      dev-lr.com 호스트 리소스를 호스팅하는 서버의 도메인 혹은 IP
      :8080 포트 서버가 동작중인 포트번호 스킴에 따라 결정
      /postview/blog/00014 경로 목적지 내의 어떤 파일
      ;param 파라미터 특정 스킴에 대해 입력하는 파라미터. 세미콜론으로 다른 파라미터 혹은 경로와 구분함
      ?test 질의 (Query) 스킴에서 애플리케이션으로 전달하는 파라미터. ?로 구분함
      #fragment 프래그먼트 리소스의 특정 일부분을 가리키는 이름. #로 구분함
    • 스킴

      • 리소스에 접근하는 방법 결정
      • 알파벳으로 시작하며, 대소문자를 구분하지 않음
    • 호스트, 포트

      • 애플리케이션이 인터넷에서 리소스를 찾기 위한 IP/도메인과 포트 정보
      • 스킴에 따라 기본 포트가 결정됨
    • 사용자 이름, 비밀번호

      • FTP 등의 일부 스킴에서 요구하는 로그인 정보
      • 사용자 이름을 입력하지 않는 경우 anonymous로 지정됨
    • 경로

      • 서버 내에서 리소스의 위치를 지정
      • 리눅스/유닉스의 파일 경로와 유사하게 /를 기준으로 나뉘어짐
    • 파라미터

      • 리소스에 접근하기 위해 요구되는 추가적인 파라미터
    • 질의

      • DB와 같은 서버에서 요청받을 리소스 형식에 대해 변수를 입력받음
      • &를 기준으로 이름=값 형태로 이루어짐
    • 프래그먼트

      • HTML과 같은 리소스는 ID 등을 기준으로 하위 수준으로 나뉠 수 있음
      • 특정 부분의 리소스 파트를 가리킬 때 사용
  • 단축 URL

    절대URL : <http://www.joes-hardware.com/tools.html>
    상대URL : ./hammers.html
    기저URL : <http://www.joes-hardwwre.com>
    
    • 상대 URL : 기저URL을 제외하고, 하위경로부터 포함
    • 절대 URL : 기저URL을 포함한, 스킴부터 호스트, 포트 등 모든 정보를 포함
  • URL 확장 : 자동완성

    • 호스트명 확장 : 사용자가 yahoo와 같이 호스트명의 일부만 입력하더라도, www와 .com을 붙여 www.yahoo.com의 완전한 호스트명을 지정하는 기능
    • 히스토리 확장 : 사용자가 호스트명의 일부만을 입력했을 때, 과거 방문기록을 참고하여 URL을 완성하는 기능
  • 안전하지 않은 문자

    • URL 문자 집합 : ASCII 문자 집합과 더불어 이스케이프 문자열을 사용함

      • ASCII 만으로는 모든 문자나 데이터를 인코딩할 수 없음
    • 인코딩 체계

      문자 ASCII
      - 126 (0x7E)
      공백 32 (0x20)
      % 38 (0x25)
    • 문자 제한 : 아래 문자들은 URL에서 사용이 불가하다

      문자 제한
      % 이스케이프 문자열의 토큰
      / 경로 컴포넌트에서 경로 구분자
      . 경로 컴포넌트에서 현재 디렉터리를 가리킬 때 사용
      .. 경로 컴포넌트에서 상위 디렉터리를 가리킬 때 사용
      # 프래그먼트의 구획 문자
      ? 질의 문자열의 구획 문자
      ; 파라미터의 구획 문자
      : 스킴, 사용자 이름/비밀번호, 호스트/포트의 구획 문자
      $ , + 예약어
      @ & = 특정 스킴에서의 의미를 가짐
      { } \ ~ [ ] `
      < > “ URL 범위의 밖에서 역할이 있는 문자
      0x00 ~ 0x1F, 0x7F ASCII로 변환이 불가한 16진수 문자
      > 0x7F 7비트 ASCII 문자에 속하지 않음
  • 스킴

      | 스킴 | 설명 |
      | --- | --- |
      | http | 일반적인 URL 포맷을 사용하는 하이퍼 텍스트 전송 프로토콜 |
      | https | http에 SSL 암호화가 적용된 프로토콜 |
      | mailto | 특정 이메일 주소를 가리킴 |
      | ftp | 파일 전송 프로토콜 |
      | rtsp, rtspu | 실시간 미디어 리소스 스트리밍 프로토콜
      rtspu는 UDP를 이용함 |
      | file | 특정 호스트 기기에서 바로 접근할 수 있는 파일을 가리킴 |
      | news | 뉴스 리소스 프로토콜 |
      | telnet | Telnet 프로토콜 |