[wecode] HTTP

·2022년 9월 29일
0

HTTP?

HT : Hyper Text

문서와 문서가 링크로 연결되어 있음

T : Transfer

HTML로 만든 웹페이지 문서를 전송

P : Protocol

데이터 전송에 필요한 통신 규약

  • W3 상에서 주로 HTML 문서를 주고받는 데에 쓰이는 통신규약으로 클라이언트와 서버 사이에 이루어지는 요청(Request) / 응답(Response) 프로토콜.
  • HTTP는 기본적으로 1요청 1응답을 원칙으로 한다.

HTTP의 두가지 특징

Request / Response

  • 소통의 핵심은 요청과 응답
  • 인간의 소통방식이 컴퓨터끼리의 소통에도 적용된 것
  • 메세지의 형식으로 요청/응답

Stateless

  • HTTP 개별 통신은 모두 독립적 -> 과거의 HTTP 통신 결과를 보존하지 않음
  • State(상태) + less(없음) : 단어 뜻 그대로 상태를 기억하지 않음
  • 매 통신마다 사전에 필요한 모든 정보를 담아 요청을 보내야 함(주로 토큰 이용)

인간의 소통방식은 과거의 요청을 기억하는 Stateful 방식이다.


Request 메세지 구조

Start Line

  • 요청의 첫줄(like 제목)
  • HTTP method : 요청이 의도한 액션을 정의
  • Request target : 요청이 전송되는 목표 url
  • HTML version
POST / login HTTP 1.1

Headers

  • 요청의 메타데이터를 담고 있는 부분
  • { key : value }의 형태
Headers : {
	Host : www.example.co.kr
    User-Agent : chrome
    Content-Type : application/json
    Content-Length : 50
}

Body

  • 요청의 실제 내용
Body : {
	"username" : "example"
    "password" : "example123"
}
  • 요청 메소드에 따라 존재하지 않을 수 있음

Resonse 메세지 구조

Status Line

  • 응답의 첫번째 줄
  • 상태를 나타냄
  • HTTP version
  • Status Code : 응답의 상태를 간략히 설명하는 텍스트
HTTP/1.1 404 Not Found
HTTP/1.1 200 SUCCESS

Headers

  • 응답의 메타데이터를 담고 있는 부분
  • { key : value } 의 형태
Headers : {
	Host : www.example.co.kr
    User-Agent : chrome
    Content-Type : application/json
    Content-Length : 50
}

Body

  • 응답해줄 데이터
Body : {
	"message" : "success"
    "token" : "dkdnakfdlskdlrjsxhzms"
}
  • 요청 메소드에 따라 존재하지 않을 수 있음

HTTP Request method

GET

  • 데이터를 받아오기만 할 때 사용
  • 웹페이지에 접속해서 필요한 데이터를 불러올 때 사용

POST

  • 데이터를 생성 / 수정 할 때 사용
  • Body에 담는 내용이 핵심

DELETE

  • 서버에 저장된 특정 데이터를 삭제할 때 사용

Status Code

Success

200 : OK

  • 문제없이 요청에 대한 처리가 백엔드 서버에서 이루어지고 나서 오는 응답코드

201 : Created

  • 요청이 성공적으로 처리되어 자원이 생성되었음을 나타내는 응답코드

204 : No Content

  • 요청이 성공했으나 클라이언트가 현재 페이지에서 벗어나지 않아도 된다는 것을 나타내는 응답코드
  • 일반적으로 PUT 요청에 대한 응답결과

Client Error

400 : Bad Request

  • 해당 요청이 잘못되었을 때 보내는 응답코드

401 : Unauthorized

  • 해당 요청을 진행하려면 먼저 로그인 또는 회원가입이 필요하다는 의미를 나타냄

403 : Forbidden

  • 유저가 해당 요청에 대한 권한이 없다는 의미를 나타냄
  • 접근 불가능한 정보에 접근했을 경우를 의미

404 : Not found

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

Server Error

500 : Internal Server Error

  • 요청 처리 과정에서 서버가 예상하지 못한 상황에 놓였다는 것을 나타내는 응답코드
  • 서버에러를 통칭(Catch all)하는 구체적이지 않은 응답

참고 : 위키피디아 HTTP, 위키피디아 HTTP 상태코드

0개의 댓글