HTTP 를 알아보자!

Karim·2022년 7월 13일
7

study

목록 보기
2/7
post-thumbnail

1. HTTP란

HyperText Transfer Protocol

  • 웹상에서 데이터를 주고 받기 위한 Server/Client 모델을 따르는 전송 프로토콜
  • TCP/IP 기반
  • 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response)

2. 통신 방식

  • HTTP는 request/response 구조로 되어 있다.
  • Client가 HTTP request를 Server로 보내면 Server는 HTTP reponse를 보내는 구조

💡 Stateless

  • 요청을 하면 응답을 받을 뿐, 요청/응답 끼리 연결되어 있지 않다.
  • 재 요청을 할 시 전의 요청/응답에 대해서는 알지 못한다.

💡 Kepp Alive

  • HTTP 1.1 부터 지원
  • HTTP는 하나의 연결하나의 요청을 하는 것을 기준으로 설계가 되어, 문서에 20여개의 파일이 있다면 계속 연결하고 다운하고 연결을 끊어야한다. TCP통신 과정에서 비용이 많이 소모함. 따라서 Keep Alive 기능 등장
  • 지정된 시간동안 연결을 끊지 않고 요청을 계속해서 보낼 수 있다.

3. HTTP 구조

전체 HTTP 구조

1. start line / status line

  • 요청이나 응답의 상태를 나타낸다.
  • start line (Request)
    • POST / HTTP/1.1
    • Methos^요청 경로^HTTP Version
  • status line (Response)
    • HTTP/1.1 [상태코드] OK
    • HTTP Version^상태 코드^상태 메세지

2. headers

  • Key-Value 구조
  • request Header
    • Accept : 클라이언트가 받을 수 있는 컨텐츠
    • Cookie : 쿠키
    • Content-Type : 메세지 바디 종류
    • Content-Length : 메세지 바디 길이
    • Connection : Keep Alive 기능 여부
    • If-Modified-Since : 특정 날짜 이후에 변경됐을 때 만
  • response Header
    • Content-Type : 바디 데이터의 타입
    • Content-Length : 바디 데이터 크기
    • Set-Cookie : 쿠키 설정
    • ETag : 엔티티 태그

3. empty line

  • Header와 Body를 구분 하기 위한 빈 한줄

4. body

  • 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함
  • 요청과 응답의 유형에 따라 선택적으로 사용

4. 대표 HTTP Mehods

GET

  • Server에 있는 데이터를 받기만 할 때 주로 사용하는 메소드
  • 데이터 생성/수정/삭제 없이 받아오기만 할 때 사용
  • 주로 데이터를 받아올때 사용되기 때문에 request에 body를 안 보내는 경우가 많다.

POST

  • 데이터를 생성/수정/삭제 할때 주로 사용되는 메소드
  • 데이터를 생성 및 수정 할때 많이 사용하기 때문에 대부분의 경우 request body가 포함되서 보내짐

📌 여담

  • 차근차근!!!

📚 참고

profile
나도 보기 위해 정리해 놓은 벨로그

0개의 댓글