kkkkkkkkkkkk
kkkkk
kkkkkkkkkkkk
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS & OS
    • Algorithms
    • Laguage
    • Book
      • 객체지향의 사실과 오해
      • Effective Java
      • Spring boot 와 AWS로 혼자 구현하는 ..
      • 도메인 주도 계발 시작하기
    • DB
    • Spring
    • Spring Boot
    • JPA
    • Git
    • Clean Code
    • HTTP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 결합도
  • 역할
  • 응집도
  • 설계 원칙
  • 객체지향 프로그래밍
  • 책임

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
kkkkkkkkkkkk

kkkkk

[모든 개발자를 위한 HTTP 웹 기본 지식]URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저의 요청 흐름
HTTP

[모든 개발자를 위한 HTTP 웹 기본 지식]URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저의 요청 흐름

2022. 10. 5. 18:13

URI는 Uniform Resource Identifier의 약자로 URL과 URN을 포함한 큰 틀을 의미한다.

 

URI ( Uniform Resource Identifier )

  • 리소스를 보여 줄 수 있도록 해주는 식별자

 

URL ( Uniform Resource Locater )

  • 리소스가 있는 위치를 지정
    • 어떠한 자원에 대해서 위치와 어떤 자원을 원하는지 구체적으로 서술된 형태
  • 인터넷에 접속 시 사용하는 주소 형식

 

URN ( Uniform Resource Name )

  • 리소스에 이름을 부여하여 리소스를 식별한다.
  • 한계점
    • 자원에 대해 이름만으로 리소스를 식별하는데에 한계가 존재

 

URL의 구조를 살펴보자

 

URL 구조

 

구조는 다음과 같다.

  1. scheme
  2. authority
  3. path
  4. query
  5. fragment

 

scheme

  • 어떠한 프로토콜을 사용할지 알리는데 사용한다.
  • 앞서 배운 프로토콜 → http, https, ftp 등

authority

  • 사용자 정보, 호스트, 포트로 나뉜다.
  • 사용자 정보
    • 만약 사용자 정보가 있다면 @ 으로 끝난다.
  • 호스트
    • 홈페이지의 주소라 생각하면 된다.
  • 포트
    • 서버의 접속하는 포트 번호다.

path

  • 리소스의 경로를 나타내며 계층 구조를 가진다.
  • /members/1

query

  • query parameter
  • key = value 형태
  • 웹 서버에 제공하는 파라미터 이며 해당 파라미터는 String 형태다.

fragment

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

 

URI에 대해 알아 봤으니 다음으로는 웹 브라우저의 요청 흐름에 대해 살펴보자.

 

 

웹 브라우저 요청 흐름

  • 웹 브라우저에 URL 입력
  • IP, PORT 정보로 HTTP 요청 메시지 생성
    • IP는 DNS를 조회해서 얻고, PORT는 생략되어있으면 프로토콜을 보고 유추한다.
  • http 메시지 전송
    • socket 라이브러리를 통해 전송
      • 헤더 부분에 ip, port 정보를 넣어 3 way handshake로 클라이언트와 서버를 연결한다.
      • 연결이되면 http 메시지를 tcp/ip 계층에 전달한다.
  • 패킷 생성
    • 헤더 부분에 출발지 ip, port, 목적지 ip, port 정보를 담고 데이터 부분에 http 메시지를 담아 tcp / ip 패킷을 생성한다.
  • 요청 패킷 전달
    • tcp / ip 패킷이 클라이언트에서 수많은 중간 노드를 거쳐 서버에 패킷을 전달한다.
  • 서버에 요청 패킷 전달
  • 서버에서 http 응답 메시지를 생성
    • 서버에 도착한 패킷의 헤더 부분은 버리고 http 메시지를 서버가 해석하여 http 응답 메시지를 만든다.
  • 서버에서 응답 패킷 전달
    • 헤드 부분에 출발지 ip, port, 목저지 ip, port 정보를 담고 데이터 부분에 http 응답 메시지를 담아 만든 응답 패킷을 클라이언트에 전달한다.
  • 클라이언트에 응답 패킷 도착
  • 클라이언트에서 html 렌더링
    • 응답 패킷에서 헤더 부분을 버리고 http 응답 메시지의 데이터를 렌더링하여 화면에 뿌려준다.

 

 

 

 

참조 : https://hseungyeon.tistory.com/427?category=1060297

 

 

 

[모든 개발자를 위한 HTTP 웹 기본 지식] 02. URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저 요청 흐

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 1. URI 1. URI? URL? URN? 1) URI(Unifrom Resource Identifier) URI = URL + URN Unifrom : 리소스 식별하는 통일된 방..

hseungyeon.tistory.com

 

'HTTP' 카테고리의 다른 글

[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 상태코드  (0) 2022.11.16
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드 활용  (0) 2022.11.15
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드  (0) 2022.10.24
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본  (0) 2022.10.24
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본 - 모든 것이 HTTP, 클라이언트 서버 구조  (0) 2022.10.08
[모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - PORT, DNS  (2) 2022.10.04
[모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - TCP, UDP  (0) 2022.10.03
[모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - 인터넷 통신, IP(인터넷 프로토콜)  (0) 2022.10.03
    'HTTP' 카테고리의 다른 글
    • [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본
    • [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본 - 모든 것이 HTTP, 클라이언트 서버 구조
    • [모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - PORT, DNS
    • [모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - TCP, UDP
    kkkkkkkkkkkk
    kkkkkkkkkkkk

    티스토리툴바