WEB
Http 동작 방식
2025. 5. 27. 13:48

HTTP 동작 방식 

  1. 사용자가 웹 브라우저에 URL 입력
  2. 브라우저가 DNS를 통해 도메인 이름을 IP 주소로 변환
  3. TCP 연결을 통해 HTTP 요청 전송
  4. 서버가 요청을 처리하고 HTTP 응답 반환
  5. 브라우저가 응답을 렌더링

1. 클라이언트(브라우저)가 URL 입력

예 : https://www.example.com/index.html

  • https: 프로토콜 (HTTP or HTTPS)
  • www.example.com: 호스트명 (도메인)
  • /index.html: 요청 리소스 경로

2. DNS 조회

  • 브라우저는 도메인(www.example.com)을 IP 주소로 변환하기 위해 DNS 서버에 질의
  • 응답으로 서버의 IP 주소를 받습니다. (예: 93.184.216.34)

3. TCP 연결 (3-way Handshake)

  • 클라이언트와 서버 간에 TCP 연결을 생성합니다. (보통 포트 80(HTTP), 443(HTTPS))
  • 이 과정은 3-way handshake로 이루어집니다:
  • nginx
    SYN → SYN-ACK → ACK

4. HTTP 요청 전송

  • 브라우저는 TCP 연결 위에서 HTTP Request를 서버에 보냅니다.

💡 예시: GET 요청

  • GET: 메서드 (GET, POST, PUT, DELETE 등)
  • Host: 요청 대상 서버
  • User-Agent: 클라이언트 정보
  • Accept: 클라이언트가 받을 수 있는 응답 형식

5. 서버가 요청 처리

  • 서버는 요청한 리소스(/index.html)를 찾아서,
  • 해당하는 HTTP Response를 보냅니다.

💡 예시: 200 OK 응답

  • 상태 코드: 200 (정상), 404 (Not Found), 500 (서버 에러) 등
  • 본문(Body)에 실제 웹 페이지 내용 포함

6. 브라우저가 응답을 렌더링

  • 받은 HTML을 파싱해 DOM 트리를 만들고,
  • CSS, JavaScript, 이미지 등 추가 리소스를 요청하며
  • 최종적으로 사용자에게 화면을 보여줍니다.

✅ 특징 요약

특징설명
비연결성 요청-응답이 끝나면 연결 종료 (HTTP/1.1은 keep-alive로 유지 가능)
무상태 각 요청 간의 상태 정보를 저장하지 않음 (쿠키/세션으로 상태 유지 가능)
확장성 다양한 메서드, 헤더를 통해 확장 가능
텍스트 기반 요청과 응답 모두 사람이 읽을 수 있는 텍스트 형식
 

🔐 HTTPS는 어떻게 다를까?

  • **HTTP + TLS(SSL)**로 보안 기능이 추가된 버전
  • 암호화, 무결성, 인증 기능 포함
  • TCP 연결 후 TLS 핸드셰이크가 먼저 수행됨

📚 참고 메서드 요약

메서드설명
GET 리소스 조회
POST 리소스 생성 (폼 제출 등)
PUT 리소스 전체 수정
PATCH 리소스 일부 수정
DELETE 리소스 삭제

'WEB' 카테고리의 다른 글

@RestController 와 @Controller 차이  (0) 2025.05.27
서블릿 필터(Filter) / 스프링 인터셉터(Interceptor) 비교  (0) 2025.05.27
SOP  (0) 2025.02.18
3계층 티어  (0) 2025.01.21
SQL SESSION 메서드  (0) 2024.12.02