[강의록] HTTP 웹 기본 지식

OWLLL ·2025년 8월 6일

인터넷 네트워크

인터넷 프로토콜의 4계층
4층 - 애플리케이션계층 : HTTP,FTP
3층 - 전송 계층 : TCP, UDP
2층 - 인터넷 계층 : IP
1층 - 네트워크 인터페이스 계층

프로토콜

IP

  • IP 주소에 패킷이라는 통신 단위로 데이터 전달.

패킷정보

  • 출발지 IP, 목적지 IP,
  • 전송 데이터

한계점

  1. 서비스가 불능이여도 패킷 전송,
  2. 패킷이 사라질 수 있고, 순서대로 오지 않을 수도 있음
  3. 같은 IP에서 여러개의 앱을 사용하는 경우 어디로 도착할지 구분하기 어려움.

TCP/IP

  • IP 방식의 한계점을 극복한 프로토콜, 대부분의 애플리케이션에서 사용하는 프로토클
  • TCP 3 Way handshake - 가상연결 : 연결이 되었는 지 확인하고 데이터를 보냄
  • 데이터 전달 보증 : 데이터를 받았는 지 받은 서버가 이야기 함.
  • 순서 보장 : 순서가 잘 못되면 받은 서버에서 재전달 요청을 보냄

패킷정보

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

UDP

  • IP 와 거의 같음
  • 포트, 체크섬이 추가된 개념
  • 필요하면 애플리케이션내에서 UDP 를 수정/확장할 수 있고 TCP 3 Way handshake 최적화 등이 필요할 때 여기서 수정함.

port

  • 같은 IP 내에서 프로세스를 구분하는 것.
  • 0 ~ 65535 : 할당가능
  • 0 ~ 1023 : 잘 알려진 포트 ,사용하지 않는 것이 좋음
  • 20, 21 : FTP
  • 23 : TELNET
  • 80 : HTTP
  • 443 : HTTPS

DNS (Domain Name System)

  • IP 에 이름을 부여하여 DNS 서버에 저장.

URI

URI (Uniform Resource Identifier)

URL (Uniform Resource Locator)

  • 리소스가 있는 위치 지정

형식

	scheme://[userinfo@]host[:port][/path][?query][#fragment]
  • scheme : 주로 프로토콜 사용
  • userinfo : url 에 사용자 정보를 포함할 때 사용하나 거의 사용하지않음
  • host : 도메인명, ip명
  • port : http/https 는 port 생략 가능
  • path : 리소스가 있는 경로
  • query
    - key-value 형태,
    • ? 로 시작하고 &로 추가 가능
    • query paramether/query string 으로 불림
  • fragment
    - 잘 사용하지 않음
    • HTML 내부 북마크 등에서 사용하고 서버에 전송되지 않음

URN (Uniform Resource Name)

  • 리소스에 이름 부여
  • 보편적이지 않은 방법

웹 브라우저 요청 흐름

https://google.com

  1. 브라우저에 URL 을 입력한다.
  2. 브라우저가 DNS 서버를 조회하여 IP 를 찾는다.
  3. 브라우저가 scheme를 참고하여 port 정보를 찾는다 (HTTP 80/HTTPS 443)
  4. 브라우저가 HTTP 요청 메시지를 생성한다.
  5. 브라우저가 구글 서버에서 데이터를 받을 수 있는 지 확인한다 (TCP 3 Way handshake)
  6. 브라우저가 소켓 라이브러리를 통해 데이터를 전달한다.
  7. 구글 서버가 소켓의 HTTP 요청 메시지를 확인하고 내용을 해석한다
  8. 구글서버가 HTTP 응답 메시지를 만든다.

HTTP (Hyper Text Transfer Protocol)

  • 모든 형태의 데이터를 전송할 수 있다.
  • 서버 간의 데이터 통신할 때도 사용한다.

버전

HTTP 1.1

  • TCP 프로토콜 사용
  • 가장 많이 사용하는 버전

HTTP 2

  • TCP 프로토콜 사용

HTTP 3

  • UDP 프로토콜 사용

특징

클라이언트 서버 구조

  • Request Response 구조
  1. 클라이언트는 서버에 요청을 보내고 대기
  2. 서버가 요청에 대한 결과를 만들어서 응답
  3. 응답받은 내용을 브라우저에 노출
profile
새벽 2시만 되면, 안 자고 싶어진다.

0개의 댓글