[TIL 29] HTTP / 네트워크 기초 1. HTTP

yezo cha·2021년 6월 24일
0

HTTP/network

목록 보기
1/7
post-thumbnail
post-custom-banner

HTTP

HTTPHyper Text Transfer Protocol의 약자로, HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며 클라이언트-서버 프로토콜이다.

HTTP로 클라이언트와 서버가 통신을 주고 받는 과정에서, HTTP가 클라이언트나 서버의 상태를 확인하지 않는다. Stateless(무상태성)이 HTTP의 큰 특징이다.

  • Clinets : browsers(Chrome, Edge, Safari...). can be any thpe of program or device.
  • Servers : computers in the cloud.

HTTP Messages

HTTP messages 는 클라이언트와 서버 사이에서 데이터가 교환되는 방식을 말한다.

  • 요청(Requests) : 클라이언트가 서버로 전달해서 서버의 액션이 일어나게 하는 메세지.
  • 응답(Responses) : 요청에 대한 서버의 답변.

HTTP 요청과 응답의 구조는 서로 닮아있다.

  1. start-line : start line에는 요청이나 응답의 상태를 나타낸다.
    항상 첫 번째 줄에 위치한다. 응답에서는 status line이라고 부른다.
  2. HTTP headers : 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합.
  3. empty line : 헤더와 본문을 구분하는 빈 줄이 있다.
  4. body : 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함한다.
    요청과 응답의 유형에 따라 선택적으로 사용한다.

HTTP Requests

HTTP Request Message = Request Header + 빈 줄 + Request Body

  • Header
    • 첫 번째 줄 (start-line)
      • 요청 메서드 + 요청 URI + HTTP 프로토콜 버전
      • GET /doc/test.html HTTP/1.1
    • 두 번째 줄 (http headers)
      • Header 정보들 (요청에 대한 meta 정보, key:value 값으로 되어 있다.)
      • 각 줄은 LFCR으로 구분된다.
  • 빈 줄 (empty-line)
    • 요청에 대한 모든 메타 정보가 전송 됨을 알려준다.
  • Body
    • 요청의 실제 메시지(내용)(HTML 폼 컨텐츠 ..)
    • POST, PUT의 경우에만 존재. GET은 body가 대부분 없다.
    • XML이나 JSON 데이터가 들어갈 수 있다.

HTTP Responses

HTTP Response Message = Response Header + 빈 줄 + Response Body

  • Header
    • 첫 번째 줄 (status-line)
      • HTTP 프로토콜 버전 + 응답 코드 + 응답 메세지
      • HTTP/1.1 200 OK
      • HTTP/1.1 404 Not Found.
    • 두 번째 줄 (http headers)
      • Header 정보들 (요청에 대한 meta 정보, key:value 값으로 되어 있다.)
        • 날짜, 웹 서버 이름, 웹 서버 버전, 컨텐츠 타입/길이 . . .
      • Request Headers와 거의 같지만, Response Headers에만 있는 값이 있다. (예를 들면, 서버)
      • 각 줄은 LFCR으로 구분된다.
  • 빈 줄 (empty-line)
    • 요청에 대한 모든 메타 정보가 전송 됨을 알려준다.
  • Body
    • 실제 응답 리소스 데이터.
    • 201, 204와 같은 상태 코드를 가진 응답에는 보통 body가 존재하지 않는다.

HTTP 기본 속성 개념

요청 메서드

  • 서버에게 요청의 종류를 알려주기 위해 사용한다.
  • 각 메서드의 사용 목적
    • GET : 정보 요청/조회 (SELECT)
    • POST : 정보 등록 (INSERT)
    • PUT : 정보 수정 (UPDATE)
    • DELETE : 정보 삭제 (DELETE)
    • HEAD : http 헤더 정보만 요청. 서버에 문제 없는지 확인.
    • OPTIONS : 웹 서버가 지원하는 메서드의 종류를 요청.
    • TRACE : 클라이언트의 요청을 그대로 반환하는 메서드.

PUT vs PATCH

쉽게 말하자면, PUT은 정보를 통째로 갈아끼울 때,
PATCH는 정보 중 일부 를 특정 방식으로 변경할 때 사용한다.

자원을 수정하는 HTTP 메서드 - PUT vs PATCH

profile
(ง •̀_•́)ง
post-custom-banner

0개의 댓글