- 인터넷에서 자원을 식별하는 데 사용되는 문자열
- URI는 자원을 고유하게 식별하고 위치를 지정하는 데 사용
- 웹 주소(URL), 파일 식별자, 데이터베이스 접근 정보 등 다양한 형태로 사용될 수 있음
👉 URI의 두 가지 형태
- URL(Uniform Resource Locator)
- 자원이 실제로 위치한 곳을 가리키는, 인터넷 상의 자원을 찾기 위한 구체적인 주소
- 예시 :
https://www.example.com/index.html
- 웹 서버에서 index.html이라는 문서를 찾기 위한 URL
- URN(Uniform Resource Name)
- 위치에 독립적인 자원의 이름을 제공(리소스의 이름)
- URN은 자원이 어디에 존재하든 그 자원을 유일하게 식별할 수 있는 이름을 제공
- 예시 : urn:isbn:0451450523
👉 URI의 구성
- 스키마(http, https, ftp 등)
- 호스트 이름
- 자원이 호스팅되는 서버의 도메인 이름 또는 IP 주소
- 포트 번호(선택적)
- 서버에서 특정 서비스에 접근하기 위해 사용하는 포트 번호
- 경로
- 쿼리 문자열(선택적)
- 서버에 제공할 추가적인 정보를 포함하며, 보통 key=value 쌍의 형태
- 프래그먼트(선택적) 등
👉 요청 URI
- 요청 URI
- HTTP 요청의 경우, URI는 HTTP 메서드에 이어서 기술
- 예시 :
GET /index.html HTTP/1.1
- 절대 URI
- URI를 모두 포함
- 예시 :
https://www.example.com/path/to/myfile.html
- 상대 URI
- URI의 일부를 포함
- 예시 :
/another-folder/image.png
👉 URI의 문자
- 예약 문자
- 예약 문자는 URI에서 특별한 의미를 가지며, 이러한 의미를 위해 사용
- 해당 목적 외에는 URI에 사용할 수 없음
- 예약 문자를 그 목적 외에 다른 용도로 사용하려면 퍼센트 인코딩을 해야 함
- 종류
:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =
- 예시
https://www.example.com/search?query=example&sort=ascending
- ?는 쿼리의 시작을 나타내고, &은 쿼리 파라미터를 구분하는 데 사용
- 비예약 문자
- 비예약 문자는 URI에서 특별한 의미 없이 사용될 수 있는 문자
- 보통 알파벳(A-Z, a-z), 숫자(0-9), -, ., _, ~를 포함
- 이 문자들은 URI의 어느 부분에서나 그대로 사용될 수 있음
- 퍼센트 인코딩
- 예약 문자도 비예약 문자도 아닌 문자를 URI에서 사용할 때, 퍼센트 인코딩이 사용됨
- 이 방식은 % 다음에 해당 문자의 ASCII 코드 값을 16진수로 표현하여 사용
- 예시
https://www.example.com/search?query=Hello%20World
- 공백 문자는 URI에서 직접 사용할 수 없기 때문에 %20으로 인코딩
👉 URI의 중요성
- URI는 웹 상의 자원을 식별하는 표준화된 방법을 제공
- 이를 통해 개발자들은 자원에 일관된 방식으로 접근할 수 있으며, 웹의 구조를 더 쉽게 이해할 수 있음
- 검색 엔진은 URL 구조를 분석하여 페이지의 내용과 중요성을 판단함
- 잘 구조화된 URL은 SEO에 긍정적인 영향을 미치며, 웹 사이트의 검색 엔진 순위 향상에 도움이 됨
- 사용자에게 친숙하고 읽기 쉬운 URL은 웹 사이트의 사용성을 향상시킴
- 사용자가 웹 주소를 쉽게 기억하고 입력할 수 있도록 도움
👉 좋은 URI 설계를 위한 팁
- URI는 가능한 한 명확하고 간결하게 설계해야 함
- 웹 리소스의 위치가 변경되더라도, 가능한 한 URI는 변경되지 않도록 해야 함
- URI에는 공백이나 특수 문자를 직접 포함할 수 없기 때문에 퍼센트 인코딩 주의
- URI 경로는 리소스의 구조를 반영해야 함