URI(Uniform Resource Identifier) : 리소스를 식별
URL(Uniform Resource Locator) : 리소스가 있는 위치를 지정
URN(Uniform Resource Name) : 리소스에 이름을 부여
위 세가지는 헷갈려서 구분이 잘안된다.. 하나씩 알아보자.
URI이면 URL이다. (X)
URL이면 URI이다. (O) 로 알 수 있듯이, URI는 URL을 포함한다.
가정 : template.html 파일이 해당경로에 존재할경우
1. https://www.changwoo.com/template.html
위 문장은 URI이면서 URL이다.
왜냐하면 template.html 파일이 실제로 저 경로에 존재하기 때문이다.
2. https://www.changwoo.com/template
위 문장은 URI이지만, URL은 아니다.
왜냐하면 확장자명이 붙질않아서 해당 파일이 경로에 존재하지 않지만,
서버에서 이를 처리하여 template 파일을 가리키기 때문이다.
가정 : school/attendance 라는 파일은 없다.
https://www.changwoo.com/school/attendance
위 문장은 URI이다. 왜냐하면 해당 파일이 해당 경로에 없기 때문에 아마
위 문장은 서버에서 school이라는 클래스의 attendance 메소드를 호출할 것이다.
URN은 리소스에 이름을 부여한 주소이다.
URL : foo://example.com:8042/over/there?name=ferret#nose
URN : urn:example:animal:ferret:nose
이제부터 URI와 URL를 같은 의미로 사용
설명을 위한 예로 사용할 경로는 아래와 같다.
https://www.google.com:443/search?q=hello&hl=ko
1. https : 프로토콜
2. www.google.com : 호스트명
3. 443 : 포트번호 (기존에 등록된 것들의 경우 생략가능)
4. /search : 패스
5. ?q=hello&hl=ko : 쿼리 파라미터
접속을 위한 포트를 지정
일반적으로 생략하며, 생략시 http는 80 / https는 443
리소스 경로를 명시
path parameter
라 한다.계층적구조 사용
예)
웹서버로 제공하는 파라미터 값을 부여하는 방법으로
query parameter
또는 query string
(전부 string으로 넘어가서)으로 부른다.
설명을 위한 예로 사용할 경로는 아래와 같다.
(전달되는 데이터는 HTML이라 가정)
https://www.google.com:443/search?q=hello&hl=ko
[요청메시지]
GET /search?q=hello&hl=ko HTTP/1.1
HOST: www.google.com
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423
<html>
<body>...</body>
</html>
본 포스팅은 인프런-김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 내용을 토대로 작성하였습니다. 진짜 강의도 너무 좋고 강의 타임도 짧은데다, 저렴하니 들어보면 좋을거같습니다.