728x90

URI와 웹 브라우저 요청에 대해 알아보자.

 

URI(Uniform Resource Identifier)

URI라고 하면 뭔가 URL의 오타같이 느껴질 것이다.

URL은 많이 봤어도 URI는 처음 봤을 것이다.

URI는 URL(locator), URN(name)로 나뉘고 URL은 그 종류일 뿐이다.

 

URI는

Uniform: 리소스를 식별하는 통일된 방식

Resource: 자원, URI로 식별할 수 있는 모든 것

Identifier: 다른 항목과 구분하는데 필요한 정보

의 약자이다.

 

URL: Uniform Resource Locator

URN: Uniform Resource Name

 

URL은 리소스가 있는 위치를 지정하고 URN은 리소스에 이름을 부여한다. 하지만 URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않았기 때문에 보통 URL을 사용한다.

 

URL 분석

https://www.naver.com/search?q=hi&hl=ko 

를 타겟으로 분석해보자.

 

일단 URL의 전체 문법은

scheme://[userinfo@]host[:port][/path][?quert][#fragment] 이다.

 

  • scheme

주로 프로토콜(어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙, http와 https 등등) 사용

http는 80포트, https는 443 포트를 사용하며 이 포트들은 생략이 가능하다.

 

  • userinfo

URL에 사용자정보를 포함해서 인증... 한다고 한다.

거의 사용하지 않기 때문에 그냥 넘어가도 될 듯 하다.

 

  • host

호스트명이다.

주로 도메인명을 사용하지만 IP 주소를 직접 사용할 수 있다.

 

  • port

어디에 접속하는지를 나타내는 포트이다.

 

  • path

리소스 경로이다.

ex) /home/target1.jpg

  • query

key=value형태로 나타낸 데이터이다.

?로 시작을 하며, 추가 할 때마다 &로 이어주면 된다.

 

  • fragment

서버에 전송하는 정보가 아닌 html 내부 북마크 등에 사용한다.

 

기본 문법을 알아보았으니, 타겟 주소로 분석을 해보자.

우선 www.google.com을 DNS 서버에서 조회해 IP 주소를 얻은 후 그곳으로 보낼 HTTP 요청 메시지를 생성한다.

 

그 때 HTTP 요청 메시지는

이렇게 만들어 질 것이다.

그 HTTP 요청 메시지가 단계를 거치며 포장이 되어 서버로 갈 것이다.

위 그림은 그 과정을 나타낸 것이다.

 

그 때 만들어진 패킷은

이렇게 메시지를 감싸서 만들어지게 될 것이다.

 

이렇게 만들어진 패킷을 서버에 보내면 서버에서 확인을 하고 응답 메시지를 만들어 보낼 것이다.

그러면 클라이언트는 이 응답 메시지를 웹 브라우저에서 렌더링하여 화면을 표시할 것이다.

'백엔드 > HTTP' 카테고리의 다른 글

HTTP 6일차  (0) 2023.03.09
HTTP 5일차  (1) 2023.03.09
HTTP 4일차  (0) 2023.03.08
HTTP 3일차  (0) 2023.03.06
HTTP 1일차  (0) 2023.03.01

+ Recent posts