HTTP

정진우·2022년 6월 1일
0

TIL

목록 보기
52/54
post-thumbnail
post-custom-banner

HTTP란?

  • HyperText Transfer Protocol
  • 컴퓨터들끼리 HTML 파일을 주고 받을 수 있도록 하는 소통 방식 또는 약속



HTTP의 두 가지 특징

  1. Request / Response (요청 / 응답)
  • 클라이언트는 사용자를 대신하여 동작하는 모든 도구이며, 이 역할은 주로 브라우저에
    의해 수행됨
  • 브라우저는 항상 요청을 보내는 개체
  • 클라이언트가 요청을 보내면 서버가 응답을 해줌
  • 서버는 요청에 대한 문서를 제공함
  1. Stateless
  • State(상태) + less(없음)
  • 각각의 HTTP 통신(요청 / 응답)은 독립적이기 때문에 과거의 통신에 대한 내용을 알지 못함
  • 통신마다 필요한 모든 정보를 담아서 요청을 보내야 함
  • 여러 번의 통신 진행 과정에서 연속된 데이터 처리가 필요한 경우를 위해
    로그인 토큰, 브라우저의 쿠키, 세션, 로컬스토리지 같은 기술이 만들어짐



Request 메시지 구조

  • Start Line: 요청의 첫번째 줄
  1. HTTP Method
    • 해당 요청이 의도한 액션을 정의하는 부분
    • 주로 GET, POST, DELETE가 많이 쓰임
  2. Request target
    • 해당 request가 전송되는 목표 url
  3. HTTP Version
    - 말 그대로 사용되는 HTTP 버전을 뜻함
    - 주로 1.1 버전이 널리 쓰임

  • Hearders: 해당 요청에 대한 추가 정보(메타 데이터)를 담고 있는 부분
    Key: Value 값으로 되어 있음 (JavaScript의 객체 형태라고 보면 됨)
    자주 사용되는 Headers의 정보
Headers: {
	Host: 요청을 보내는 목표(타겟)의 주소. 즉, 요청을 보내는 웹사이트의 기본 주소가 됨
	(ex. www.apple.co.kr)
	User-Agent: 요청을 보내는 클라이언트의 대한 정보 (ex. chrome, firefox, safari, explorer)
	Content-Type: 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
	Content-Length: body 내용의 길이
	Authorization: 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authroization 에 담는다
}

- Body : 해당 요청의 실제 내용. 주로 Body를 사용하는 메소드는 POST다.
ex ) 로그인 시에 서버에 보낼 요청의 내용
Body: {
	"user_email": "jun.choi@gmail.com"
	"user_password": "wecode"
}



Response 메시지 구조

  • Status Line: 응답의 상태 줄. 요청에 대한 처리상태를 알려줌
  1. HTTP Version: 요청의 HTTP 버전과 동일
  2. Status Code: 응답 메시지의 상태 코드
  3. Status Text: 응답 메시지의 상태를 간략하게 설명해주는 텍스트
  • Headers: 요청의 헤더와 동일. 응답의 추가 정보를 담고 있음
    응답에서만 사용되는 헤더의 정보들이 있음(Server 헤더)

  • Body: 요청의 Body와 일반적으로 동일. 필요 없는 경우 Body가 없을 수도 있음
    가장 많이 사용되는 Body의 데이터 타입은 JSON이다.
    ex) 로그인 요청에 대해 성공했을 때 응답의 내용

Body: {
	"message": "SUCCESS"
	"token": "kldiduajsadm@9df0asmzm" (암호화된 유저의 정보)
}



HTTP Request Methods

자주 사용되는 HTTP 메소드 3가지

1. GET

  • 어떤 데이터를 서버로부터 받아올 때 주로 사용
  • 데이터를 받아오기만 할 때 사용
  • 가장 간단하고 많이 사용되는 HTTP 메소드

2. POST

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

3. DELETE

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



Response Status Codes

200: OK

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

201: created

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

400: Bad Request

  • 해당 요청이 잘못되었을 때 보내는 Status Code
  • 주로 요청의 Body에 보내는 내용이 잘못되었을 때 사용되는 코드

401: Unauthorized

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

403: Forbidden

  • 유저가 해당 요청에 대한 권한이 없다는 뜻
  • 접근 불가능한 정보에 접근했을 경우

404: Not Found

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

500: Internal Server Error

  • 서버에서 에러가 났을 때의 Status Code
profile
프론트엔드 개발자를 꿈꾸는
post-custom-banner

0개의 댓글