웹 동작 원리와 HTTP 프로토콜

Chaeyoung·2023년 11월 26일
0

간단 개념 정리하기

간단 동작 원리 정리

웹의 기본 구조

  • 클라이언트 <- 방화벽 -> 웹서버 <--> WAS <--> DB 서버
  • 방화벽 : http(s)://
  • 웹서버 : www.velog.io
  • WAS : /write?
  • DB서버: id=dajflkdj

웹 서비스를 위한 서버측의 구성은 기본적으로 방화벽, 웹 서버 ,WAS(Web Application Server), DB서버로 구성된다.

방화벽(Firewall)

네트워크를 이용한 악의적인 공격으로부터 내부망과 내부 시스템을 보호하기 위한 보안 장비

웹 서버(Web Server)

HTTP 프로토콜을 이용하여 웹 클라이언트의 요청을 처리하고 응답한다.
사용자의 요청에 빠르게 응답하며, 최적의 UI(화면 구성)를 제공하는 것을 목적으로 한다.

웹 응용 서버(WAS)

  • 웹 기반 서비스의 응용(Application) 역할을 담당한다.
  • 웹 서버와 응용 서버를 분리하여 구성하므로, '사용자 요청에 대한 응답에 최적화된 웹 서버'의 장점과 '복잡한 로직을 처리하고 기능의 확장에 유리한 응용 서버의 장점을 모두 제공하게 된다.

DB 서버

  • 서비스를 위한 주요 데이터, 사용자 데이터 등을 저장하고 관리한다.

DNS (Domain Name System Server)

url들의 이름과 IP 주소를 저장하고 있는 데이터 베이스로 웹 사이트를 위한 주소록이다. IP주소 대신 사용자가 사용하시 편하도록 주소를 매핑해주는 역할을 한다.

TCP/IP(transmission Control Protocol/ Internet Protocol)

데이터가 어떻게 웹을 건너 여행하는지 정의하는 통신 규약이다. 송신자가 수신자에게 IP주소를 사용해서 데이터를 전달하고 그 데이터가 제대로 갔는지 이야기 하는 것이다.

웹 브라우저에 웹페이지가 표시되는 과정

  • 사용자가 velog.io/write?id=saflk와 같은 url을 웹 브라우저의 주소창에 직접 입력하거나, 링크를 클릭한다.
  • DNS(Domain Name System) 조회(Query)를 통하여 url을 IP주소로 변환한다.
  • TCP의 3way-handshaking연결 방식으로 웹 서버에 연결하며, 일반적으로 80포트를 이용한다. HTTPS일 경우 443 포트를 이용하여 접속한다. ( 서버에 html문서 요청)
  • HTTP 프로토콜을 이용하여 웹 서버에 /write?id=saflk를 요청(req)한다.
  • /write는 서버에서 실행되는 기능으로, 관련 기능에 따라 WAS와 상호 연동한다. 이때, 필요한 경우 데이터베이스의 정보를 이용한다.
  • 웹 서버는 최종 정보를 웹브라우저에 응답(Res)하고, 웹 브라우저는 전송 받는 내용을 표시한다.
  • TCP의 4way-handshaking 연결 종료 방식으로 웹 서버와의 연결을 종료한다.

DNS Query의 목적

DNS 서버들을 검색해서 해당 사이트의 IP주소를 찾는대있다.
IP 주소를 찾을 때까지 DNS서버에서 다른 DNS 서버를 오가며 에러가 날때까지 반복적으로 검색한다. = recursive search

HTTP 프로토콜

HTTP 요청 메소드(Req Method)

  • ⭐️GET : URL 형식으로 리소스(res)데이터를 요청한다.
  • ⭐️HEAD : 리소르의 헤더(header) 정보를 요청하며, 서버는 응답 메시지로 본문(body)을 제외한 헤더 정보만 사용한다.
  • ⭐️POST : HTTP 요청을 헤더와 바디로 구분하여 사용하고, 요청할 내용을 바디에 담아 서버에 전송한다. 주로 Form문을 사용한 ㄷ이터 전송에 사용한다.
  • PUT : 새로운 문서를 만들거나 기본 정보를 갱신하기 위해 사용한다.
  • DELETE : 웹의 리소스(파일)를 삭제하기 위해 사용한다.
  • CONNECT : 프록시(proxy)와 같은 중간 서버에 접속하기 위해 사용한다.
  • TRACE : 요청한 리소스가 수신되는 경로를 확인하기 위해 사용한다.
  • ⭐️OPTIONS : 웹 서버가 제공하는 메소드를 확인하기 위해 사용한다.

HTTP 응답과 상태코드

  • 웹 클라이언트 요청에 대한 응답시 웹 서버는 HTTP 프로토콜의 버전, 웹 서버 정보, 상태 코드, 데이터 정보(Header 정보)등을 함께 전송한다.
  • HTTP 상태코드는 1XX(조건부 응답, 정보교환), 2XX(성공), 3XX(리다이렉션), 4XX(요청오류), 5XX(서버오류)로 구분된다.

HTTP 헤더 구조

  • HTTP 프로토콜의 요청과 응답은 헤더(부가정보)와 바디(실제 데이터)로 구성된다.
  • HTTP의 헤더와 바디는 한 줄로 구분 된다.(개행 문자인 \r\n으로 구분)

참고자료

0개의 댓글