[CS] HTTP통신

SuJeong·2022년 10월 30일
0

Computer Science

목록 보기
5/8

1. HTTP통신이란?

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


2. HTTP 특징

  • 요청과 응답

    서버에게 request 클라이언트에게 response

  • stateless

    개별통신은 모두 독립이어서 과거의 결과를 보존하지 않는다.
    매 통신마다 모든 정보를 담아서 요청을 보내야만한다.

3. Request 메시지 구조

  • start line

    • 요청의 첫번째줄
    • http method : 요청이 의도한 액션을 정의
    • request target : 요청이 전송되는 목표 url
    • http version : http 버전
      post / login HTTP/1.1
  • headers

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

    요청의 실제 내용

    body: {
    username
    password
    }

4. Response 메세지 구조

  • status line

    • 웅답의 첫번째줄 상태
    • http version : HTTP 버전
    • status code : 통신상태코드
    • status text : 상태코드 설명
      HTTP/1.1 404 Sot found
      HTTP/1.1 200 SUCCESS
  • headers

    • Request와 동일
    • 요청의 메타데이터를 담고있는 부분
    • Key: Value 값으로 되어있다 (JavaScript의 객체, Python의 딕셔너리 형태라고 보면 된다)
    • Host: 요청을 보내는 목표(타겟)의 주소. 즉, 요청을 보내는 웹사이트의 기본 주소가 된다. (ex. www.apple.co.kr)
    • Server: 응답을 보내는 서버에 대한 정보
    • Content-Type: 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
    • Content-Length: body 내용의 길이
    • Authorization: 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authroization 에 담는다
    headers: {
    host
    server
    content-type
    content-length
    }
  • body

    응답의 실제 내용

    body: {
    message
    token
    }
  • status code

    200 : ok
    201 : created
    204 : no content
    400 : bad request
    401 : unauthorized
    403 : forbidden
    404 : not found
    500 : internal server error

5. http request method

get

데이터 받아오기만 할 때 사용
웹페이지에 접속해서 필요한 데이터를 불러올 때 사용
get/shop/bag HTTP 1.1

post

데이터를 생성/수정할 때 사용
body에 담는 내용이 핵심
ex) 장바구니에 담기

delete

서버에 저장된 특정 데이터 삭제
delete/shop/bag/productId HTTP 1.1
ex) 장바구니에서 삭제

profile
Front-End Developer

0개의 댓글