TIL : HTTP

군밤먹으면서코딩·2021년 6월 17일
0

web

목록 보기
3/3
post-thumbnail

통신과 HTTP

HTTP는 컴퓨터 끼리 통신(HTML 파일을 어떻게 주고 받을 것인가)하는 하나의 방법 중 하나이다. (HyperText Transfer Protocol)

  • Https : http에 보안기능이 더 추가된 통신방식.

  • client에서 요청(Request)

  • server에서 응답(Response)

1. Request / Response ( 요청 / 응답 )

메세지의 형식으로 요청하고 응답

2. Stateless

HTTP 개별 통신은 모두 독립적이어서, 과거의 HTTP 통신의 결과(상태)를 보존하지 않는다!

쉽게 말해, 각각의 요청(request -> response)은 서로의 존재를 모른다.

이전의 상태를 전혀 알지 못한다는 뜻. 따라서 매 통신마다 필요한 모오오든 정보를 담아서 요청을 보내야 한다!

  • 상당히 비효율적으로 보이지만 서버 구현이 간단해진다는 장점도 존재한다.

  • 따라서 로그인, 장바구니 등의 기능 구현을 위해 쿠키,세션,로컬 스토리지, 로그인 토큰 등의 기술이 필요해진다.

Request / Response

1. Request 메세지 구조

  • Host: 요청을 보내는 목표(타겟)의 주소. 즉, 요청을 보내는 웹사이트의 기본 주소가 된다
    (ex. www.apple.co.kr)
  • User-Agent: 요청을 보내는 클라이언트의 대한 정보 (ex. chrome, firefox, safari, explorer)
  • Content-Type: 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
  • Content-Length: body 내용의 길이
  • Authorization: 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authroization 에 담는다

2. Response 메세지 구조

요청을 알아 들어었는지 못알아들었는지!

  • 404 Not Found - 실패!

  • 200 OK! - 성공!

HTTP Request Methods

  • 자주 사용되는 HTTP 통신 메소드 세가지를 정리해보자! ( GET , POST , DELETE )

1. GET

  • 어떤 데이터를 서버로 부터 받아올 때 주로 사용하는 메서드 ( 백엔드 / 서버 에서 body 작성 )

  • 데이터를 받아오기만 할 때 사용된다.

2. POST

  • 데이터를 생성 / 수정할 때 사용

  • 프런트 (클라이언트)에서 body 작성

3. DELETE

  • 특정 데이터를 서버에서 삭제 요청을 보낼때 쓰는 메서드

  • body에 값을 작성하지 않는것이 특징!

Response Status Codes

실제 프로젝트를 진행할 때 가장 많이 보게 될 응답의 상태 코드 들이다. Status Code의 숫자에 각각 의미가 내포되어 있다. 이 Status Code 만 보아도 응답이 제대로 됐는지 안 됐는지를 파악할 수 있다.

200: OK

  • 가장 자주 보게되는 Status Code
  • 문제없이 요청에 대한 처리가 백엔드 서버에서 이루어지고 나서 오는 응답코드
  • 우리는 모두 200 OK 를 원한다

201: Created

  • 무언가가 잘 생성되었을 때에(Successfully Created) 오는 Status Code
  • 대게 POST 메소드의 요청에 따라 백엔드 서버에 데이터가 잘 생성 또는 수정 되었을 때에 보내는 코드

400: Bad Request

  • 해당 요청이 잘못되었을 때 보내는 Status Code
  • 주로 요청의 Body에 보내는 내용이 잘못되었을 때 사용되는 코드
    ex) 전화번호를 보내야 하는데 숫자가 아닌 문자열의 주소가 대신 Body에 담겼을 경우

401: Unauthorized

  • 유저가 해당 요청을 진행하려면 먼저 로그인을 하거나 회원가입이 필요하다는 의미
    ex) wish list, 좋아요 기능은 회원이 아니면 요청을 보낼 수 없음

403: Forbidden

  • 유저가 해당 요청에 대한 권한이 없다는 뜻
  • 접근 불가능한 정보에 접근했을 경우
    ex) 오직 유료회원만 접근할 수 있는 데이터를 요청 했을 때

404: Not Found

  • 요청된 URI 가 존재하지 않는다는 의미

500: Internal Server Error

  • 서버에서 에러가 났을 때의 Status Code
  • API 개발을 하는 백엔드 개발자들이 싫어하는 코드 (프론트는 내 잘못 아니라는 것을 알 수 있는 코드)

보다 더 자세한 HTTP Response Status Codes MDN link

요약

  1. HTTP 는 컴퓨터 끼리의 소통을 위한 통신규약이다.
  2. HTTP 통신은 Request(요청)과 Response(응답)으로 이루어 진다.
  3. HTTP 통신의 매 요청과 응답은 이전 상태를 알지 못 한다. (Stateless)

0개의 댓글