[http통신] http

김은지·2022년 2월 13일
0

학습 내용 정리

목록 보기
8/25

지난번에 Restful API 관련하여 메모할 때, 간단히 HTTP통신에 대해 정리했었는데, 부족한 내용을 조금 추가해보려고 한다.

HTTP란

  • Hyper text / Transfer / Prococol
  • 문서와 문서가 링크로 연결 / html문서 전송 / 규약
  • 컴퓨터끼리의 소통을 위한 통신규약

HTTP의 특징

  • 요청과 응답(Request/Response)으로 이뤄짐
  • Stateless : 각각의 http통신은 독립적 -> 이전의 상태를 모름 -> 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 함
  • 연속된 데이터 처리가 필요한 경우가 있어 로그인토큰, 브라우저의 쿠키, 세션, 로컬스토리지와 같은 기술이 만들어짐

Request / Response 의 구조

Request 메세지 구조

  1. start line : 요청의 첫번째 줄에 해당하며, http method(GET, POST, DELETE 등)/ request target(목표 url)/ http version(현재는 주로 1.1) 정보가 담겨있다.
  2. header : 메타데이터
    • Key:Value 형식으로 되어있음
    • Host : 목표 주소
    • User-Agent : 클라이언트 정보(브라우저 등)
    • Contnet-Type : 요청 메시지의 body타입(application/json 등)
    • Authorization: 회원의 인증/인가를 처리를 위한 로그인 토큰을 여기에 담음
  3. body : 요청의 실제 내용, method의 종류에 따라 없을수도 있음
    • 보통 post(= put. patch)가 사용

Response 메시지 구조

  1. status line: 요청에 대한 처리상태와같은 정보를 나타냄
    • http version(요청과 동일), status code(응답메시지의 상태코드), status text(상태에 대한 설명 코드)
  2. header : 요청과 동일하지만, User-Agent대신 Server헤더가 사용됨
    03: body : 요청의 바디와 일반적으로 동일, JSON타입이 가장 많이 사용됨

HTTP Method

  • GET : 정보를 받아오기만 할 때 사용
  • POST : 데이터의 생성/ 수정시에 사용, body를 포함
  • DELETE : 삭제요청시 사용

Response 상태코드

  • 200 : 요청처리에 대한 응답이 문제 없을 때
  • 201 : 잘 생성되었을 때, 대게 POST메소드의 요청을 처리 한 후에 온다.
  • 400 : Bad Request, 요청이 잘 못 되었을 때, 주로 body에 보내는 내용이 잘 못 되었을 때
  • 401 : Unauthorized, 인가되지 않은 사용자의 요청인 경우 (로그인 토큰 안 줬을 때)
  • 403 : Forbidden, 권한이 없는 유저가 요청 한 경우
  • 404 : Not Found, url이 존재하지 않음
  • 500 : Internal Server Error, 서버에러

0개의 댓글