본문 바로가기

기본 프로그래밍 지식

[기본 지식] 2. HTTP 이해

반응형

HTTP란?

  • HyperText Transfer Protocol의 약자.
  • HyperText를 전송하기 위한 통신 규칙 체계
  • 클라이언트-서버 프로토콜.
  • Stateless하다. Session이 있다.

Request 요청 & Response 응답

  • Request: 클라이언트가 서버로 데이터 및 액션을 받기 위해 전달.
    • HTTP 메소드를 사용하여 서버의 액션을 지정해줌.
      • GET: 주로 읽거나, 검색할 때 사용. 
      • POST: 주로 새로운 리소스를 생성할 때 사용.
    • Multi-part Request: 하나의 body에 하나 혹은 그 이상의 데이터 셋을 합쳐놓은 것. 보통 파일 업로드나 여러 타입의 데이터 통신 요청들을 할 때 사용됨.
  • Response: 서버가 클라이언트로부터 받았던 요청에 대한 결과값.
    • Header: Response 헤더, General 헤더, Entity 헤더 3가지로 구성되어 있다.
      • Response 헤더: 상태 줄에 미처 들어가지 못했던 서버에 대한 추가 정보를 제공한다.
        • Access-Control-Allow-Origin: 요청 Host와 응답 Host가 다르면 CORS 에러가 발생하는데 서버에서 응답 메시지 Access-Control-Allow-Origin 헤더에 프론트 주소를 적어주면 에러가 발생하지 않는다.
        • Set-Cookie: 서버 측에서 클라이언트에게 세션 쿠키 정보를 설정할 때 사용하는 항목
      • General 헤더: 메시지 전체에 적용되는 헤더이다.
        • Server: 웹 서버 (소프트웨어) 정보
        • Via: 요청헤더와 응답헤더에 포워드 프록시와 리버스 프록시에 의해서 추가된다. 포워드 메시지를 추적하거나, 요청 루프 방지, 요청과 응답 체인에 따라 송신자의 프로토콜 정보를 식별함.
      • Entity 헤더: 요청 본문에 적용되는 헤더이다. 요청 내에 본문이 없는 경우에는 당연히 전송되지 않는다.
        • Content-Encoding: 응답 콘텐츠 압축하는 방식, br, gzip, deflate 등의 알고리즘으로 압축해서 보내면, 브라우저가 알아서 해제해서 사용함, 요청이나 응답 전송 속도도 빨라지고, 데이터 소모량도 줄어들기 때문에 사용함
        • Content-Type: 콘텐츠의 미디어 타입(MIME Type). 반환된 콘텐츠 타입이 실제로 무엇인지 클라이언트에게 알려줌.
        • Date: 현재 날짜
        • Last-Modified: 요청한 파일의 최종 수정일

쿠키 Cookie

  • HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 
  • 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송합니다. 
  • 쿠키는 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용합니다. 
    • 이를 이용하면 사용자의 로그인 상태를 유지할 수 있습니다. 상태가 없는(stateless) HTTP 프로토콜에서 상태 정보를 기억시켜주기 때문입니다.
  • 쿠키의 사용목적
    • 세션 관리(Session management) - 서버에 저장해야 할 로그인, 장바구니, 게임 스코어 등의 정보 관리
    • 개인화(Personalization) - 사용자 선호, 테마 등의 세팅
    • 트래킹(Tracking) - 사용자 행동을 기록하고 분석하는 용도

 

참고자료

 

[Web] HTTP와 Request, Response의 개념 이해

Hyper Text Transfer Protocol의 약자Hyper Text: 직역하면 초월적인 텍스트. 텍스트 간의 연결 방식이 순차적 접근 방식이 아닌 비순차적(초월적) 접근 방식이다. (페이지에서 다른 데이터로 이동할 때) Tran

velog.io

 

[HTTP] HTTP Method 정리 / GET vs POST 차이점

GET이나 POST는 매우 자주 쓰는 HTTP 메소드들이다. 아마 제일 많이 쓰지 않나 싶다. 근데 정확히 두 개가 어떻게 다른지, 어떤 특징을 가지고 있는지 잘 모르겠어서 정리해보려고 한다. 아래 글들은

im-developer.tistory.com

 

HTTP 쿠키 - HTTP | MDN

HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이

developer.mozilla.org

 

반응형