URI란
- Uniform Resource Identifier의 약자이다
- URI는 URL이 될 수도, URN이 될 수도 아니면 둘 다가 될 수도 있다.
- Uniform : 리소스를 식별하는 동일된 방식
- Resource : 자원 / URI로 식별할 수 있는 모든 것
- Identifier : 다른 항목과 구분하는데 필요한 정보
URL과 URN의 차이
- URL - Uniform Resource Locator : 리소스의 위치를 지정
- URN - Uniform Resource Name : 리소스에 이름을 부여
- 위치 즉 URL은 변할 수 있지만, URN은 변하지 않는다.
urn:isbn:8960777331의 특정 URN이 있다 생각하자.
해당 URN으로 들어간다 해도 실제로 어떤 리소스가 나오지는 않는다.
즉 URN 이름만으로는 실제 리소스를 찾을 수 있는 방법이 보편화되어있지 않다.
URL 문법에 대해서
기본적인 URL의 문법은 위와 같다.
만약 구글에 접속해서 검색을 했다면 위와 같은 URL이 나타나게 될 것이다.
URL은 프로토콜, 호스트명, 포트번호, 경로, 쿼리 파라미터로 구성되어 있다.
- https : 프로토콜
- www.google.com : 호스트명
- 443 : 포트번호
- /search : 경로
- q=hello&hl=ko : 쿼리 파라미터
scheme
scheme은 주로 프로토콜을 사용한다.
여기서 프로토콜이란 어떤 방식으로 자원에 접근할 것인지 정해둔 규칙이다. ex) http, https, ftp
http는 80 포트, https는 443 포트를 주로 사용한다. (포트는 생략 가능)
https(http secure)는 http에 보안을 추가한 것이다.
userinfo
URL에 사용자 정보를 포함해서 인증할 수 있으며 거의 사용하지 않는다.
host
호스트명이다.
도메인명 혹은 IP 주소를 사용할 수 있다.
port
접속 포트이다. ( 포트를 통해서 동일 IP의 프로그램 구별 가능! 잊지 말자 )
일반적으로 생략된다.
path
리소스의 경로이며 계층적인 구조를 갖는다.
예)
/home/file1.jpg
/members/settings
query
key=value형태이며, 서버로 특정 값을 보내는 경우 사용한다.
?로 시작하며, &로 추가가 가능하다. ex) ?keyA=valueA&keyB=valueB
query parameter, query string 등으로 불린다.
fragment
서버에 전송하는 정보가 아니며 HTML 내부 북마크 등에 사용된다.
웹 브라우저 요청 흐름
만약 구글에서 검색을 하면 어떻게 요청이 전달될까?
첫 번째로 HTTP 메시지가 생성된다.
그 후 OS 계층으로 전달되어 TCP 정보와 IP 정보를 추가한 후 서버로 전송된다.
패킷을 전달받은 서버는 아래와 같이 응답 HTTP 메시지를 반환한다.
응답 패킷이 도착하면 웹 브라우저는 응답 패킷 속에 담긴 HTML을 클라이언트에게 렌더링 해준다.
출처 : https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
'CS' 카테고리의 다른 글
HTTP 메서드 활용 (0) | 2025.04.03 |
---|---|
[ 프로그래머스,bfs ] 네트워크.python (0) | 2025.04.03 |
HTTP 메서드에 대해 (0) | 2025.04.03 |
HTTP에 대해 (0) | 2025.04.02 |
인터넷 네트워크에 대해서 (0) | 2025.04.01 |