HTTP

이다은·2023년 5월 31일
0

🐰 HTTP란?

Hypertext Transfer Protocol의 약자로 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. 쉽게 말해 웹 상에서 통신을 할 때 어떤 형식으로 통식을 하자고 정해놓은 약속입니다.
HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 이때 클라이언트-서버 프로토콜이란 수신자 측에 의해 요청이 초기화되는 프로토콜을 의미합니다.

HTTP Method

수행할 작업의 종류를 나타내기 위해 서버에 보내는 메세지이다. 브라우저와 서버 간의 통신이 더 풍부해진다.

메소드설명
GET어떠한 데이터를 서버로부터 받아올 때 사용한다.
POST일반적으로 무언가를 생성하기 위해 서버에 데이터 블록을 수락하도록 요청한다.
PUT데이터를 업데이트할 때 사용한다.
DELETE데이터를 서버에서 삭제할 때 사용한다.

GET

URL 매개변수를 사용하여 서버에 데이터를 요청한다.
웹에서 가장 일반적으로 사용되는 HTTP 방법이다.
GET 요청 매개변수는 이름-값 쌍으로 형식이 지정된다.

  • 가능

    서버에서 데이터 검색
    길이 제한이 있는 서버로 데이터 보내기
    브라우저에 기록 남기기
    캐시에 저장
  • 불가능

    민감한 데이터 처리(ex) 비밀번호, 신용카드 정보 등)
    서버에서 데이터 수정

POST

리소스를 변경하기 위해 서버에 데이터를 보낸다.(ex) 데이터베이스 레코드)
데이터가 전송될 때 사용자가 볼 수 없는 요청 본문으로 전송된다.

  • 가능

    리소스 데이터 즉, 서버의 데이터 수정
    민감한 데이터 처리
    길이 제한 없이 데이터 보내기
  • 불가능

    캐시에 저장
    브라우저에 기록 남기기

PUT vs PATCH

  • 공통점

    둘 다 어떠한 데이터를 수정하기 위해 사용된다
  • 차이점

    PUT: 데이터 전체 교체, 데이터 교체시 모든 필드 필요
    PATCH: 데이터 일부 교체, 데이터 교체시 일부 필드 필요
{
  "username": "Mike"
  "email": "mike@naver.com"
}

// 이메일 변경하는 올바른 방법
// PUT 사용
// PUT /user/1
{
  "username": "Mike"
  "email": "mike@naver.com"
}

// PATCH 사용
// PATCH /user/1
{
  "email": "mike@naver.com"
}

// 잘못된 방법
// PUT /user/1
{
  "email": "mike@naver.com"
}

// put method 사용시 email만 입력하는 경우 username은 null 처리

HTTP Stateless

서버가 여러 요청 기간 동안 각 사용자에 대한 정보나 상태를 유지할 필요가 없다는 뜻으로 즉, 서버가 클라이언트의 이전 상태를 보존하지 않는다는 의미이다. 이는 각 요청에 대한 연결을 재설정하는데 소요되는 시간/대역폭을 최소화하기 위함이다.
반대 개념으로는 stateful이 있다.

profile
안녕하세요

0개의 댓글