URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다. 리소스 중복 판정기라고 생각하면 편함

- Uniform: 리소스 식별하는 통일된 방식
- Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)
- Identifier: 다른 항목과 구분하는데 필요한 정보
- URL: Uniform Resource Locator
- URN: Uniform Resource Name
URN은 사실상 잘 사용하지 않으므로, 이 글에서 앞으로 URI는 URL과 같은 의미로 이야기하겠음
URL
Uniform Resource Locator: 자원 위치 지정자
컴퓨터 네트워크에서 자신이 원하는 자원을 찾기 위해 해당 자원의 위치와 종류를 나타내는 규칙을 URL이라고 함.

- 프로토콜: URL은 자원을 접근하는 방법인 스킴scheme으로 시작한다. 스킴보다는 프로토콜이라고 부르는게 일반적이므로 앞으로는 프로토콜이라고 쓰겠다.
- 사용자정보: 사용자 아이디와 비밀번호를 사용자정보userinfo로 부른다. 잘 사용하지 않기 때문에 따로 설명하지 않겠다. (예: https://username:password@www.example.com/)
- 호스트: 그리고 호스트 주소가 나온다. IP 또는 www.example.com과 같은 도메인명을 쓴다. 호스트명:포트번호 형태로 포트번호를 쓸 수 있는데 선택사항이다.
- 경로: 호스트 주소 다음에 /으로 시작하는 경로가 나온다. 윈도우의 디렉토리나 폴더와 비슷하다고 보면 된다. 루트 디렉토리가 /으로 시작하는 것이 윈도우와 다르다 (예: https://www.example.com/).
- 매개변수: 그 다음은 웹서버에 보내는 추가 매개변수(Query 또는 Parameters)가 온다. ? 로 추가 가능하며, &로 연결가능하다.
- 부분식별자: 마지막으로 #으로 시작하는 자원의 세부 부분을 지정할때 쓰는 부분 식별자(fragment identifier)가 온다.대표적인 사례는 위키피디어 백과사전이다. 부분 식별자를 세부항목에 대한 책갈피bookmark로 쓸 수 있어서 어떤 글에서 특정 항목으로 바로 이동할 수 있다. 서버에 전송하는 정보는 아니다.