HTTP

박효상·2022년 4월 21일
0

BACKEND-TIL

목록 보기
6/21
post-thumbnail

HTTP 란?

  • 클라이언트와 서버간의 데이터 전송시 사용되는 Application level의 네트워크 통신 프로토콜

HTTP Request Message 구조

  • Start line: HTTP 상태를 나타내는 HTTP Message의 시작 부분
    • 구성: HTTP Method, Request Target URI, HTTP Version
    • 예시: GET /products HTTP/1.1
  • Header: HTTP 전송에 필요한 모든 부가 정보
    • 구성: Host URL, User-Agent, Authorization, etc
  • Empty Line: 공백
  • Body: 전달할 메세지 본문

HTTP Response Message 구조

  • Start line: HTTP 상태를 나타내는 HTTP Message의 시작 부분
    • 구성: HTTP Version, Status Code, Status Text
    • 예시: HTTP/1.1 200 OK
  • Header: HTTP 전송에 필요한 모든 부가 정보
    • 구성: Date, Content-Type, Cache-Control, etc
  • Empty Line: 공백
  • Body: 요청에 대한 응답 메세지 본문

HTTP 특징

  • Stateless (무상태성) : 요청이 오면 이에 응답을 할뿐 지속적으로 연결되어 있지 않는 상태를 뜻하며, 요청과 응답이라는 한 번의 사이클이 끝나면 연결이 끊어진다. 이를 통해 서버의 부하는 줄여주지만 클라이언트의 상태 보존이 없다는 단점이 있다
  • Request / Response: HTTP 통신의 핵심은 요청과 응답이며, 말이 아닌 메세지의 형식으로 요청하고 응답

HTTP Status Code

  • Success: 200(OK), 201(Created)
  • Error: 400(Bad Request), 401(Unauthorized), 403(Forbidden), 404(Not Found)
  • Server Error: 500(Server Error)

HTTP 암호화 방법

  • TLS : HTTP는 서버 클라이언트 통신간 암호화가 이뤄지지 않는 방식이라 스니핑에 취약한데 이를 막고자 서버 클라이언트간 전송되는 데이터 패킷을 인증서를 통해 암호화한 뒤 전송하는 방식
  • HTTPS: HTTP + TLS

HTTP Version별 특징

  • HTTP 1.0: keep alive
  • HTTP 1.1: TCP/IP
  • HTTP 2.0: Header Compression
  • HTTP 3.0: UDP

HTTP 주요 Method

  • POST: 서비스에 새로운 데이터를 추가할 때 사용
  • GET: 요청한 데이터를 조회할 때 사용
  • UPDATE: 기존에 존재하는 데이터를 수정할 때 사용
  • DELETE: 서버에 저장된 특정 데이터를 삭제할 때 사용
profile
집념의 백엔드 개발자

0개의 댓글