-
URI와 웹 브라우저의 요청 및 응답Computer Science/Computer Network 2022. 3. 23. 00:48728x90
URI(Uniform Resource Indentifier)
자원을 식별하는 통일된 방식으로 리소스는 URI로 식별할 수 있는 모든 것을 의미하고 식별자는 다른 항목과 구분하는데 필요한 정보이다.
URI는 URL(User Resource Locator), URN(User Resource Name)으로 나뉘어지는데 URL은 리소스의 위치를 지정해 실제 주소에 쓰이고 URN은 리소스에 이름으로 매핑되어 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되어 있지 않아 참고만 한다.
URL 문법URL의 기본적인 형태는 다음과 같다. (아래는 URL의 구조와 비교를 하기위한 구글의 URL이다.)
scheme://[userinfo@]host[:port][/path][?query][#fragment]https://www.google.com:443/search?q=hello&hl=ko
scheme- 주로 프로토콜에 사용되며, 어떤 방식으로 자원에 접근할 것인가 하는 규칙
- http는 80 포트, https는 443 포트를 주로 사용하고 포트 번호는 생략 가능
userinfo- URL에 사용자 정보를 포함해서 인증을 하는데 거의 사용되지 않음
host
- 호스트 이름을 나타내고 도메인명 또는 IP 주소를 직접 사용 가능
port- 같은 서버 내 여러 프로세스들의 요청을 구분하기 위한 것으로 접속 포트라고도 함
- 일반적으로 생략
path- 리소스 경로로써 계층적인 구조를 가짐
query parameter- key, value 형태
- ?로 시작하고, &를 이용해 추가 쿼리문 작성 가능
- 웹 서버에 제공하는 파라미터로 문자 형태를 가짐
fragment- html 내부 북마크 등에 사용되고 서버에 전송하는 정보 X
웹 브라우저 요청 흐름
[클라이언트 -> 서버]
1. 웹 브라우저에서 URL을 통해 요청하면 DNS 조회를 통해 IP 주소로 변환한 뒤 포트 정보와 함께 HTTP 요청 메시지를 생성한다.
2. 소켓 라이브러리를 통해 이를 OS에 전달하게 되는데, 먼저 IP 주소와 PORT 번호를 확인 후 TCP/IP 연결을 하고 데이터를 전달한다.3. OS에선 TCP/IP 패킷(출발지, 목적지 ip, port와 HTTP 메시지)이 생성되고 인터넷 망을 통해 서버로 전달한다.
[서버 -> 클라이언트]
4. 서버에서는 요청 패킷에 있는 HTTP 메시지를 가지고 검색 엔진을 통해 해석한다.5. 해석한 결과대로 HTTP 응답 메시지를 만들어내고 응답 패킷을 생성하여 웹 브라우저에 전달한다.
6. 웹 브라우저에서는 응답 패킷 내부에 HTTP 응답 메시지를 확인해서 HTML 렌더링을 통해 결과를 출력하게 된다.728x90'Computer Science > Computer Network' 카테고리의 다른 글
웹 애플리케이션의 이해 (0) 2022.04.12 HTTP의 메소드 (0) 2022.04.06 HTTP의 기본 (0) 2022.03.31 인터넷 네트워크 (0) 2022.03.22