1. HTTP(HyperText Transfer Protocol)

  • 처음에는 문서간의 링크를 통해서 연결할 수 있는 HTML을 전송하는 프로토콜
  • 지금은 HTML, TEXT, 이미지, 음성, 영상, JSON, XML, .. 모든 형태의 데이터

데이터 별 HTTP 버전 확인하는 방법

2. HTTP의 특징

1) 클라이언트 서버 구조

  • Request Response 구조
  • 양쪽을 독립적으로 개발 가능

2) 무상태 프로토콜 지향

  • 서버가 클라이언트의 상태를 저장하지 않는다
  • 클라이언트가 매번 자신의 이전 상태를 포함한 데이터를 전송(A, A+B, A+B+C)
  • 그렇기 떄문에 중간에 서버가 바뀌어도 데이터 전송에 문제가 없다
  • 응답 서버를 쉽게 바꿀 수 있다(아무 서버나 호출해도 된다)
  • 무한한 서버 증설 가능하다
  • 로그인이 유지되어야 하는 화면은 무상태로 설계 불가능하다

3) 비연결성

  • 서버가 클라이언트와 통신을 안하는 경우에도 계속 연결 유지되면 서버의 자원이 낭비된다
  • HTTP는 일반적으로 초 단위 이하로 빠른 연결이 가능해 비연결성을 기본으로 한다
  • 비연결성이라도 클라이언트 입장에서 큰 불편함이 없고, 서버 입장에서는 자원을 효율적으로 쓸 수 있다

4) HTTP 메세지

a) HTML의 요청 메세지

시작 라인
  • HTTP 메소드
    • 종류: GET, POST, PUT, DELETE …
    • 서버가 수행해야 할 동작 지정
      • GET: 리소스 조회
      • POST: 요청 내역 처리
  • 요청 대상
    • 절대경로[?쿼리]
    • 절대경로=”/”로 시작하는 경로
HTTP 헤더
  • 용도
    • HTTP 전송에 필요한 모든 부가정보
    • 메세지 바디의 내용, 메세지 바디의 크기, 압축, 클라이언트 정보, ..
HTTP 메세지 바디
  • 실제 전송할 데이터
  • HTML, 이미지, 영상, JSON 등 byte로 표현 가능한 모든 데이터 전송 가능

b) HTML의 응답 메세지

시작 라인
  • HTTP 상태 코드
    • 200: 성공
    • 400: 클라이언트 요청 오류
    • 500: 서버 내부 오류

Tags:

Categories:

Updated: