HTTP란

Aaron·2020년 4월 17일
0

네트워크

목록 보기
1/1
post-thumbnail

정의


  • HTTP: Hypertext Transfer Protocol
    • Hypertext: 컴퓨터나 전자기기 화면에 표시되는 링크를 포함한 텍스트
      예: google
    • Transfer: 전송
    • Protocol: 규약(서로 지키도록 정한 규칙)

한 마디로 -> 링크를 기반으로 데이터를 주고 받기 위해 서로 지키도록 정한 규칙

모든 프로그램이 이 규칙에 맞게 개발되었기에 서로 데이터를 교환할 수 있는 것

그럼 그 규칙이 뭔데?

request & response



출처: Lokesh Chinni's Medium blog

HTTP 통신은 클라이언트가 요청하면 서버가 응답하는 형태로 이루어짐

식당 VS 웹

  • 식당: 손님은 먹고 싶은 음식을 주문서에 적어 직원에게 요청하고, 직원은 계산서에 메뉴와 가격을 적어 응답함
  • 웹: 클라이언트는 원하는 정보를 HTTP request에 기록해 요청하고, 서버는 HTTP response에 기록해 응답함

식당에서 종이(주문서, 계산서)에 요구사항을 적어 의사소통을 하듯이
웹에서는 HTTP Message(HTTP request, HTTP response)에 요구사항을 적어 의사소통을 함

그럼 대체 HTTP Message가 뭔데?

HTTP Message



출처: MDN

  • 서버와 클라이언트 간에 데이터가 교환되는 방식

  • 개발자가 손수 작성하는 일은 드물며, 브라우저,웹 서버, 프록시, 소프트웨어 등이 그 일을 대신함

  • 메시지 타입

    1. HTTP request

    클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지

    1. HTTP response

    요청에 대한 서버의 답변

      
  • 메시지 구조

    • 시작 줄(HTTP request) or 상태 줄(HTTP response)

    • 헤더

    • 본문

    +@ 빈 줄(empty line): 요청에 대한 모든 메타 정보가 전송되었음을 알리는 역할

  • 메시지 개요

    • 시작 줄 or 상태 줄

      • 실행되어야 할 요청 or 요청 수행에 대한 성공 혹은 실패가 기록되어 있음. 이 줄은 항상 한 줄로 끝남.

      • 시작 줄
        ex: GET(HTTP 메서드) /background.png(요청 타겟(ex.URL)) HTTP/1.1(HTTP 버전)

      • 상태 줄
        ex: HTTP/1.1(HTTP 버전) 404(상태 코드) Not Found(상태 텍스트)

    • 헤더

      • 요청에 대한 설명, 혹은 메시지 본문에 대한 설명
    • 본문

      • 요청과 관련된 내용(Form-data, request body 등)이 옵션으로 들어가거나, 응답과 관련된 문서(document)가 들어감
profile
Maker를 지향하는 웹 개발자입니다.

0개의 댓글