HTTP

귀찮Lee·2022년 6월 8일
0

◎ HTTP(HyperText Transfer Protocol)

  • HTTP (HyperText Transfer Protocol)
    • HTML과 같은 문서를 전송하기 위한 Application Layer 프로토콜
    • 웹 브라우저와 웹 서버의 소통을 위해 디자인됨
    • 전통적인 클라이언트-서버 모델에서 클라이언트가 HTTP messages 양식에 맞춰 요청을 보내면, 서버도 HTTP messages 양식에 맞춰 응답

◎ HTTP messages

  • 클라이언트와 서버 사이에서 데이터가 교환되는 방식
  • HTTP messages의 두가지 유형 : 요청(Requests), 응답(Response)
  • 구성 파일, API, 기타 인터페이스에서 HTTP messages를 자동으로 완성 (개발자가 직접 작성할 일은 거이 없음)
  • 공통 구성 요소
    • start line : 요청이나 응답의 상태를 나타냄
    • HTTP headers : 요청을 지정하거나, 본문의 내용을 설면
    • empty line : 헤더와 본문을 구분하는 빈줄
    • body : 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함 (선택적 사용)

◎ HTTP 요청(Requests)

  • Start line
  • Headers
  • Body

  • Client 와 Server 간 Request, Response 는 HTTP 메시지 규약을 따름

  • HTTP 메시지는 웹 서비스 개발자(백엔드, 프론트 개발자)에게 매우 중요한 내용이다. (API 통신시 안되는 이유를 쉽게 파악 가능)

  • HTTP Request 메시지 구조(필요 내용만)

    • 시작줄: API 요청 내용
      - GET naver.com HTTP/1.1
    • 헤더의 "Content type" (필수요소 아님)
      • Content type: application/x-www-form-urlencoded // HTML form 태그로 요청 시
      • Content type: application/json // AJAX 요청시
    • 본문
      • GET 요청 시: (보통) 없음
      • POST 요청 시: (보통) 사용자가 입력한 폼 데이터
  • HTTP Response 메시지 구조(필요 내용만)

    • 상태줄: API 요청 결과 (상태 코드, 상태 텍스트)
      - HTTP/1.1 404 Not Found
    • 헤더의 "Content type" (필수요소 아님)
      • Content type: text/html // 본문 내용이 HTML인 경우
      • Content type: application/json // 본문 내용이 JSON 인 경우
    • 헤더의 "Location" (Redirect시 사용)
    • 본문
      • HTML, JSON...
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글