HTTP, 쿠키&세션

Hyunz·2022년 1월 25일
1

cs/web

목록 보기
2/6
post-thumbnail

HTTP란 ? HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜

(프로토콜 : 네트워크 통신하기 위해 정해둔 약속)

HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 하고, 애플리케이션 계층의 프로토콜임.

HTML : 문서 작성 언어, WWW를 구성하는 기술
HTTP : 문서 전송 프로토콜
URL : 문서의 위치를 지정하는 방법

HTTP 프로토콜

  • Connectionless (클라이언트가 서버에 요청 했을 때, 그 요청에 맞는 응답을 보낸 후 연결을 끊음)
  • Stateless (데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리됨. 클라이언트의 상태 정보를 가지지 않는 서버처리 방식)
    → 별도의 추가정보를 관리하지 않아도 되고, 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 성능 상의 이점이 생김
    → 하지만 데이터 유지가 필요한 경우가 많음 → 쿠키&세션으로 보완
  • 일반적으로 TCP/IP 통신 위에서 동작함 (신뢰 가능한 전송 프로토콜이라면 이론상으로는 무엇이든 사용할 수 있으나 TCP 혹은 암호화된 TCP연결인 TLS를 통해 전송됨)
  • 기본포트 : 80번

클라이언트 & 서버

클라이언트 : 요청을 보내는 쪽, 일반적으로 웹 관점에서 브라우저

서버 : 요청을 받는 쪽, 일반적으로 데이터를 보내주는 원격지의 컴퓨터

HTTP 요청 메서드

서버에 특정 데이터를 요청

- GET : 존재하는 자원에 대한 요청
- POST : 새로운 자원을 생성
- PUT : 존재하는 자원에 대한 변경
- DELETE : 존재하는 자원에 대한 삭제

HTTP 기반 시스템의 구성요소

클라이언트에서 요청을 하면, 그 요청은 하나의 객체이고, 사용자 에이전트(또는 프록시)에 의해 전송됨. 각각의 개별적인 요청은 서버로 보내지고, 서버는 요청을 처리하고 응답을 제공함. 이 요청과 응답 사이에는 여러 개체들이 있는데, 예를 들면 게이트웨이 또는 캐시 역할을 하는 프록시 등이 있음.

Client - Gateway(or Proxy) - Server

클라이언트 - 사용자 에이전트

사용자 에이전트는 사용자를 대신하여 동작하는 모든 도구이며 주로 브라우저에 의해 수행됨. 브라우저는 항상 요청을 보내는 개체이며 결코 서버가 될 수 없음.

웹 서버

통신 채널의 반대편에는 클라이언트에 의한 요청에 대한 문서를 제공하는 서버가 존재함. 서버는 사실상 논리적으로 단일 기계임. 서버는 반드시 단일 머신일 필요는 없지만, 여러 개의 서버를 동일한 머신 위에서 호스팅 할 수는 있움. HTTP/1.1과 Host 헤더를 이용하여, 동일한 IP 주소를 공유할 수도 있음.

프록시

프록시는 클라이언트와 서버 사이에서 HTTP 메시지를 이어 받고 전달하는 역할

애플리케이션 계층에서 동작함



쿠키 & 세션

HTTP의 connectionless, stateless 특징을 보완하기 위해 쿠키&세션 사용

쿠키와 세션은 가장 유명한 예시로는 id,pw 저장이 있다.

쿠키 없을 때 : 클라이언트가 웹사이트에 접근하여 페이지를 요청한다. 웹 서버에서는 접근한 클라이언트의 Request-Header 필드인 쿠키를 확인하여 세션id가 있는지 확인한다. 세션id가 없으면 만들어서 클라이언트에게 돌려준다. (HTTP 화면 돌려줄때 함께 돌려줌) 클라이언트는 받은 세션id를 쿠키에 저장한다.

쿠키 있을 때 : 웹사이트 재방문 시 클라이언트가 가지고 있는 쿠키(세션id)를 페이지 요청할 때 웹 서버에게 요청과 함께 전송한다. 세션id가 있으므로 권한을 가지고 있는 것이다.

공통점

  • 데이터를 저장해두기 위함(데이터를 저장하지 않으면 불필요한 요청 및 응답이 생길 수 있음)

차이점

쿠키세션
저장위치클라이언트서버
저장형식textObject
용량제한도메인당 20개, 1쿠키당 4KB제한 없음
만료시점쿠키 저장 시 설정(설정 없으면 브라우저 종료 시 만료)알 수 없음(클라이언트가 로그아웃하거나, 설정한 시간동안 반응이 없으면 무효화되기 때문)
속도빠름느림
보안취약보통




참고자료1링크텍스트
참고자료2링크텍스트
+인터넷서치

profile
Do my BEST

0개의 댓글