HTTP 통신

홍석현·2022년 9월 23일
0

HTTP (Hyper Text Transfer Protocol)

브라우저와 서버가 통신할 수 있도록 만들어주는 여러 프로토콜 가운데 한 종류로 웹 브라우저와 웹 서버 사이에 HTML 문서를 주고받는데 쓰이는 통신 프로토콜이다.

HTTPS는 HTTPSecure의 약자로 HTTP에서 보안이 더 강화된것이다.

HTTP Protocol의 특징

HTTP에서는 클라이언트가 서버에 요청을 보내고 서버는 클라이언트의 요청에 대한 응답을 반환합니다. 연결 상태를 유지하지 않는 비연결성 프로토콜이며, 요청 후 응답(request, response) 방식으로 동작합니다.

비연결성 프로토콜은 서버가 response 후에 클라이언트의 상태를 저장하지 않는다는 것입니다. 때문에 HTTP 프로토콜은 상태가 없는 프로토콜, 무상태성(stateless)라고도 불립니다.

상태가 없다라는 말은 데이터를 주고받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다는 말이고, 이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없다는 뜻이다.

비연결성 프로토콜의 단점을 해결하기 위해 Cookie와 Session이 등장합니다.

쿠키와 세션

로그인 상태 등을 서버에 쿠키 또는 세션으로 저장함

쿠키(클라이언트 정보를 클라이언트에 저장)

쿠키 동작 순서

  1. 클라이언트가 서버에 Request를 한다.
  2. 서버에서 쿠키값을 설정하고 도메인을 생성하여 Response한다.
  3. 전달받은 쿠키를 클라이언트에 저장한다.
  4. 클라이언트가 서버에 다시 Request 할때 domain을 확인하고 해당 domain 으로 값을 설정하여 요청한다.

이러한 과정을 통해 쿠키가 다시 서버에 돌아와 제 역할을 수행한다.
하지만 쿠키는 클라이언트에 저장되는 특성상 보안에 취약하다.

세션(클라이언트 정보를 서버에 저장)

-세션을 저장하는 여러가지 방법-

  1. 메모리
  2. 파일
  3. 데이터베이스
  4. 쿠키(비추천)

1~3은 서버에 저장하는 방법이고 4는 클라이언트에 저장하는 방법이다.
마찬가지로 4번 방법은 보안상의 이유로 권장하지 않는다.

세션동작 순서

profile
Front-end to Full-stack

0개의 댓글