새소식

CS

[CS] HTTP란?

  • -

HTTP(HyperText Transfer Protocol)

💡웹 브라우저와 웹 서버 간에 데이터를 주고 받기 위해 사용하는 프로토콜

 

HTTP의 특징

크게 클라이언트 서버 구조,Connectionless와 Stateless로 볼 수 있습니다

  • 클라이언트 서버 구조
    클라이언트가 서버에 요청을 보내면, 서버가 요청에 대한 응답을 보내는 클라이언트-서버 구조로 이루어져있습니다
  • Connectionless(비 연결지향)
    실제로 요청을 주고 받을 때만 요청을 유지합니다
    - 클라이언트에서 서버에 요청을 보내면 서버는 클라이언트에 응답을 하고나면 TCP/IP 연결을 끊습니다
    : 이를 통해 최소한의 자원으로 서버를 유지할 수 있으나 자원을 보낼 때마다 연결을 끊고 다시 연결하고를 반복하는 과정은 비효율적이라는 단점이 있습니다
  • Stateless(무상태 프로토콜)
    서버가 클라이언트의 상태를 보존하지 않습니다
    - 장점은 서버의 확장성이 높다는 점 단점은 클라이언트가 추가 데이터를 전송해야한다는 점입니다
    - 로그인과 같이 유저의 상태를 유지하는 서비스에선, 쿠키,세션,토큰등을 이용해 상태를 유지해야합니다

HTTP 메시지의 구조

요청 라인,헤더, 빈 줄, 본문으로 구성

  1. 요청 라인
    클라이언트가 무엇을,어떤 방식을 통해,어떻게 처리하고자 한다는 정보
    - 요청메서드(How) : 클라이언트가 서버에 요청하는 데이터가 어떻게 처리되면 좋을지
    - 경로 (What) : 주로 가져오려는자원의 경로를 표시

  2. 요청 헤더
    HTTP 메시지에 대한 추가 정보를 제공하기 위해 사용
    - 호스트 정보
    -접속하고 있는 사용자의 정보
    -지원할 수 있는 데이터의 유형 확인 가능

  3. 빈라인
    헤더와 본문을 구별하기 위해 사용

  4. 본문
    응답을 받기위한 별도의 데이터

요청 메서드의 종류

공식적인 요청 메서드는 총 9가지 하지만 가장 많이 사용되는 건 5가지입니다

 

 

HTTP 헤더의 특징

  • 클라이언트와 서버가 메서지를 주고 받을 때 본문뿐만 아니라 부가적인 정보를 전송하기 위해 사용합니다
  • 클라이언트와 서버가 필요한 만큼 헤더를 작성 할 수 있습니다
  • 헤더는 "헤더명: 헤더값"의 형식으로 작성하고 대소문자를 구분하지 않습니다

 

HTTP헤더의 종류

  1. 공통 헤더(general header)
    요청 메시지와 응답 메시지 모두 적용되는 헤더
    Date : 메시지가 발생한 날짜와 시각을 표현
    Cache-Control : 기존에 받은 데이터를 저장할지 여부를 정합니다
  2. 요청 헤더(request header)
    요청메시지에 작성하며 클라이언트에 대한 정보 또는 변경될 데이터에 관한 내용을 포함하는 헤더
    Host : 데이터를 요청하는 서버의 호스트 이름
    User-Agent : 클라이언트 정보
  3. 응답 헤더(response header)
    응답 메시지에 대한 정보를 포함
    Server : 웹 서버의 종류등 서버에 대한 정보가 내재
  4. 엔티티 헤더(entity header)
    메시지 본문에 대한 정보를 포함하는 헤더
    Content-Type : 자원의 미디어타입
    Content-Language : 본문의 언어

'CS' 카테고리의 다른 글

[CS] Axios 란 무엇일까?  (0) 2024.02.20
[CS] 쿠키(Cookie)와 세션(Session)  (1) 2024.02.06
[CS] CORS란 무엇일까? CORS 개념  (0) 2024.02.06
[CS] Socket 이란?  (0) 2024.01.30
[CS] HTTP 상태코드 알아보기  (0) 2024.01.07
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.