HTTP

namu445 2022. 1. 21. 10:22

HTTP

  • 데이터를 주고 받는 양식을 정의한 프로토콜(통신규약)입니다.
  • 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 프로토콜입니다.

 

HTTP가 데이터를 주고 받는 방법

  • Request, Response라는 개념이 존재합니다.
    • request하면 response가 있어야합니다.
  • 서버와 브라우저의 관계
    • 브라우저(클라이언트)는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request)합니다.
    • 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 반환(Response)해줍니다. 없다면 없는 페이지에 대한 데이터를 반환합니다. (404에러 관련 페이지)
    • 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줍니다.
  • 상태를 저장하지 않습니다.(stateless)
    • 기본적으로 단방향 서비스이며 사용자를 식별할 수 없습니다.
    • 쿠키와 세션으로 사용자를 식별기능을 보완합니다.
    • websocket, http-polling과 같이 사용해서 양방향 서비스를 제공합니다.

 

HTTP Method

메서드 의미 Idempotent
POST Create No
GET Select Yes
PUT Update Yes
DELETE Delete Yes

 

HTTP request 구조

  • start line
    • http 메소드(get, post..), 경로 등의 정보를 포함한다.
  • header
    • request에 대한 정보를 담고 있다. TCP/IP 기반 전송에 필요한 정보와 http통신에 알려야하는 필수 정보 외에 authorization 등 특수 목적을 위한 정보가 포함된다.
  • body
    • 데이터가 들어가는 공간
    • 일반적으로 객체의 형태로 전달합니다.(JSON)

 

HTTP response 구조

  • staus line
    • http 버전, status 응답 코드 등을 포함한다.
  • header
    • response에 맞는 정보가 포함된다.
  • body
    • 데이터가 들아가는 공간
    • 일반적으로 객체의 형태로 전달합니다.(JSON)
  • 예시

 

자주 보는 HTTP Status 코드

  • 200
  • 201
  • 400
  • 401
  • 403
  • 404
  • 405
  • 409
  • 413
  • 500

 

 

 

<참고> 

 

https://velog.io/@teddybearjung/HTTP-%EA%B5%AC%EC%A1%B0-%EB%B0%8F-%ED%95%B5%EC%8B%AC-%EC%9A%94%EC%86%8C#2-2-4-http-response-%EA%B5%AC%EC%A1%B0

 

HTTP 구조 및 핵심 요소

하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 protocol(통신 규약).즉 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 "통신 형식" 혹은 "통신 구

velog.io

https://bcho.tistory.com/953

 

REST API의 이해와 설계-#1 개념 소개

REST API의 이해와 설계 #1-개념 소개 REST는 웹의 창시자(HTTP) 중의 한 사람인 Roy Fielding의 2000년 논문에 의해서 소개되었다. 현재의 아키텍쳐가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있

bcho.tistory.com

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

 

'' 카테고리의 다른 글

Express.js?  (0) 2022.01.21
웹 서버?  (0) 2022.01.21
API?  (0) 2022.01.16
JWT를 이용한 로그인 기능  (0) 2022.01.16
Bulma  (0) 2022.01.13