HTTP 웹 기본지식1 (웹 브라우저의 요청 흐름)

Ilhoon·2022년 5월 10일
0

개발자의 기본기

목록 보기
5/6

모든 개발자를 위한 HTTP 웹 기본지식 - 김영한님

컴퓨터(클라이언트, 서버)가 인터넷에서 데이터를 주고받는 방법

IP (Internet Protocol)

인터넷 프로토콜 역할

  • 지정한 IP주소에 데이터 전달
  • 패킷이라는 통신 단위로 데이터를 주고받는다

IP 프로토콜의 한계

  • 받는 대상이 어떤 상태인지 모른다. (패킷을 받을 수 없는 상태여도 그냥 보낸다.)

  • 중간에 패킷이 사라지거나, 패킷의 순서가 잘못되어도 확인이 불가능하다.

  • 같은 IP주소에서 여러 프로그램이 실행 중이면, 어떤 프로그램에 데이터를 전달하는지 알 수 없다.

TCP (Transmission Control Protocol)

IP 프로토콜의 한계를 보완 (현재 대부분 사용하는 프로토콜)

  • TCP 3 way handshake (가상 연결)
    • 클라이언트- 접속 요청 (SYN)
    • 서버 - 요청 수락 및 접속 요청 (SYN + ACK)
    • 클라이언트 - 요청 수락 및 데이터 전송 (SYN)
  • 데이터 전달 보증
    • 데이터 잘 받았다는 데이터를 보내준다.
  • 순서 보장
    • 순서가 다르게 오면, 다시 보내도록 한다.
  • PORT
    • 같은 IP주소 내에서 프로세스를 구분한다.

TCP/IP 패킷 정보

  • 출발지 IP, PORT
  • 목적지 IP, PORT
  • 전송제어, 순서, 검증 정보 등
  • 전송 데이터

DNS (Domain Name System)

기억하기 쉽도록 만들어진 도메인을 통해 IP주소를 찾아서 연결시켜준다.

  1. 클라이언트가 도메인명입력
  2. DNS서버가 IP주소 반환
  3. IP주소로 데이터 전송

URI (Uniform Resource Identifier)

리소스를 다른 항목과 구분하기위한 식별자

URL, URN을 포함하는 개념, URN은 거의 사용하지 않기 때문에 URL과 혼용되어 같은 의미로 많이 사용된다.

URL분석

  • https://www.google.com:443 /search?q=hello&hl=ko

  • https : 프로토콜을 의미, 어떤 방식으로 자원에 접근할 것인가 (ex. http, https, ftp)

  • www.google.com : 도메인명 또는 IP주소

  • 443 : port번호, 일반적으로 생략가능하다

  • /search : 리소스 경로, 계층적구조

  • q=hello&hl=ko : 쿼리 파라미터, key=value형태, ?로 시작하고 &로 추가 가능

웹 브라우저 요청 흐름

https://www.google.com:443/search?q=hello&hl=ko

웹 브라우저

  1. DNS조회
  2. HTTP 요청 메시지 생성
  3. TCP/IP 패킷 생성
    1. 전송 데이터 : HTTP 요청 메시지
  4. TCP/IP 패킷 서버로 전달

서버

  1. HTTP 요청메시지 해석 후 HTTP응답 메시지 전송
profile
꾸준하게!

0개의 댓글