사용자가 브라우저에 URL 입력 => 브라우저는 DNS를 통해 서버의 진짜 주소를 찾음 => HTTP 프로토콜을 사용해 HTTP 요청 메시지를 생성 => TCP/IP 연결을 통해 HTTP 요청이 서버로 전송됨 => 서버는 HTTP 프로토콜을 활용해 HTTP 응답 메시지를 생성 => TCP/IP 연결을 통해 요청한 컴퓨터 전송 => 도착한 HTTP 응답 메시지는 웹페이지 데이터로 변환되고 웹 브라우저에 의해 출력되어 사용자가 볼 수 있음
TCP와 UDP의 차이
TCP: 연결형 서비스, 전송 순서 보장, 수신 여부 확인, 신뢰성이 높고 속도가 느리다.
UDP: 비연결형 서비스, 전송 순사 바뀜, 수신 여부 확인X, 신뢰성이 낮고 속도가 빠르다.
GET과 POST의 차이
GET: 데이터를 조회하기 위해 사용되는 방식으로 데이터를 헤더에 추가하여 전송하는 방식, URL에 데이터가 노출되므로 보안적으로 중요한 데이터를 포함해서는 안된다.
POST: 데이터를 추가 또는 수정하기 위해 사용되는 방식으로 데이터를 바디에 추가하여 전송하는 방식
HTTP 프로토콜
서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜
HTTP: 평문 데이터를 전송하는 프로토콜로 비밀번호 또는 주민번호 주고 받을 시 보안 문제가 있음
HTTPS: HTTP에 암호화가 추가된 프로토콜로 대칭키 암호화와 비대칭키 암호화가 모두 사용.
3 Way-Handshake
송신자와 수신자가 총 3번에 걸쳐 데이터를 주고 받으며 통신이 가능한 상태임을 확인
클라이언트에서 서버로 데이터 전송의 상황
정적 데이터 조회: 쿼리 파라미터 없이 리소스 경로로 단순하게 조회가 가능하다. (GET)
동적 데이터 조회: 쿼리 파라미터를 사용하여 주로 검색, 게시판 목록에서 정렬 필터 데이터 전송 (GET)
HTML Form을 통한 데이터 전송: 회원가입, 상품주문, 데이터 변경 등 (POST), GET/POST만 지원