Search

[HTTP] URI와 웹 브라우저 요청 흐름

태그
IP(인터넷 프로토콜)
웹 네트워크
속성 1
2022/05/07 15:51
속성
2023/12/10 11:42
속성 2
순서
2
해당 자료는 인프런 김영한 님의
모든 개발자를 위한 HTTP 웹 기본 지식을 참고하여 작성하였습니다.
목차

URI(Uniform Resource Identifier)

URI는 로케이터(Locator), 이름(Name)또는 둘다 추가로 분류될 수 있다.

URI

Uniform: 리소스 식별하는 통일된 방식
Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)
Identifier: 다른 항목과 구분하는데 필요한 정보
URL: Uniform Resource Locator
URN: Uniform Resource Name

URL, URN

URL - Locator: 리소스가 있는 위치를 지정
URN - Name: 리소스에 이름을 부여
위치는 변할 수 있지만, 이름은 변하지 않는다.
urn:isbn:899....
URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음
앞으로 URI를 URL과 같은 의미로 이야기하겠음

URL 전체 문법

scheme://[userinfo@]host[:port][/path][?query][#fragment]
https://www.google.com:443/search?q=hello&hl=ko
프로토콜(https)
주로 프로토콜 사용
프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
예)http, https, ftp 등
호스트명(www.google.com)
도메인명 또는 IP주소를 직접 사용가능
포트(443)
접속 포트
일반적으로 생략, 생략시 http는 80, https는 443
패스(/search)
리소스 경로, 계층적 구조
쿼리 파라미터(q=hello&hl=ko)
key=value형태
?로 시작, &로 추가 가능
query parameter, query string등으로 불림, 웹서버에 제공하는 파라미터, 문자 형태
프레그먼트(#fragment)
html 내부 북마크 등에 사용
서버에 전송하는 정보 아님

웹 브라우저 요청 흐름

1.
사용자가 URL을 통해서 서버에 요청을 한다.
사용자 요청 메시지를 생성한다.
HTTP 요청 메시지
2.
HTTP 메시지를 전송하기 위한 준비를 한다.
TCP/IP 패킷 생성 과정
SOCKET 라이브러리에서 3way handshake를 통해 연결해준다.
3.
패킷을 생성 한 후 전송 데이터 HTTP 메시지를 넣어 준다.
전송 데이터 생성
4.
요청 패킷을 노드를 통해서 서버로 전송한다.
요청 패킷 서버 전달
5.
구글 서버에 요청 패킷이 전달 되면 응답 메시지를 만든다.
응답 메시지
http 버전이랑 정상응답인200 OK이다.
응답하는 데이터가 텍스트에 HTML형식이다. 언어는 UTF-8이다.
실제 HTML의 데이터의 길이
6.
만든 응답메시지를 클라이언트 서버에 다시 전송 해준다.
응답메시지 클라이언트에 전송
7.
클라이언트에서 웹 브라우저 HTML을 렌더링을 통해서 정보를 확인한다.
HTML 렌더링