[Computer Science] HTTP - HyperText Transfer Protocol 이란

728x90
반응형
SMALL

 

# HTTP

HyperText Transfer Protocol

 

HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다.

HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, Client-Server 간 데이터 통신을 위한 프로토콜이다.

 

 


 

## 특징

  • TCP/IP를 이용하는 응용 프로토콜이다.
    • TCP/IP : 컴퓨터 사이의 통신 표준 및 네트워크 라우팅, 상호 연결에 대한 규칙을 지정한 프로토콜
      • TCP : 전송 계층
      • IP : 인터넷 계층

 

  • 연결을 유지 하지 않고 요청/응답 방식으로 동작하는 무상태 프로토콜이다.
    • 쿠키 및 세션으로 보완

 

 


 

## 장점

  • 불특정 다수를 대상으로 하는 서비스에 유리하다.
  • Cilent <-> Server 간 연결을 유지하지 않기에 최대 연결수보다 더 많은 요청과 응답 처리가 가능하다.

 

 

## 단점

  • 연결을 끊기 때문에 클라이언트의 이전 상황을 알 수 없다.

 



 

## Method

  • GET (= READ)
    • RequestBody가 아닌, Header 영역에 QueryString이 포함되어 전달된다.
    • 즉, URL 뒤에 QueryString 정보가 노출되며, Header이기에 데이터 양에 한계가 있다.

 

  • POST (= CREATE)
    • RequestBody에 정보를 저장하여 전달한다.
    • Header 영역에는 Body 영역에 저장된 데이터 타입(content-type)을 명시해야 한다.

 

  • PUT (= UPDATE)
    • 정보 전체 수정

 

  • DELETE (=DELETE)

 

  • PATCH (=UPDATE)
    • 정보 일부 수정

 

  • HEADER
    • Header Read

 

 



 

## 데이터 포맷

  • Request
    • Header : Request Method, Resuest URL, HTTP 버전, 그 외 Header 정보
    • Body : 전달할 Data (GET 방식은 URL에 자원을 전달하는 방식이라 Body가 없다)

 

  • Response
    • Header : HTTP 버전, Response Status Code, Response 메시지, 그 외 날짜 및 콘텐츠 타입 정보
    • Body : HTML과 같은 본문 정보

 


 

### Status Code

  • 1xx (조건부 응답) : 요청을 받았으며 계속 작업을 진행한다.

 

  • 2xx (성공) : Client가 요청한 동작을 수신하여 성공적으로 수행했다.
    • 200 - OK
  • 3xx (리다이렉션 완료) : Client는 요청을 마치기 위해 추가 동작을 취해야한다.
    • 302 - Found : 다른 페이지 이동
    • 304 - Not Modified : 수정되지 않음

 

  • 4xx (Client 오류) : Client 요청에 오류가 있다.
    • 400 - Bad Request : 잘못된 요청
    • 403 - Forbidden : 접근 권한 없음
    • 404 - Not Found : 해당 페이지 없음

 

  • 5xx (Server 오류) : Server가 유효한 Client 요청을 제대로 수행하지 못했다.
    • 500 - Internal Service Error

 

 


 

## Version

  • HTTP/1.0
    • GET, POST, HEAD 지원
    • 각 요청마다 연결을 맺고 끊는 비효율적인 비 연결 지향 방식의 문제점 존재

 

  • HTTP/1.0+
    • Keep-Alive 커넥션을 지원함으로써 매번 연결을 맺는 설계상의 문제 해결

 

  • HTTP/1.1
    • OPTION, PUT, DELETE 추가 지원
    • Keep-Alive 기본 지원 (Header : Connection:Keep-Alive)
      • 1회의 3-way hanshaking 과정으로 여러 요청/응답 처리 가능
    • 가장 많이 사용

 

  • HTTP/2.0
    • 멀티플렉싱 스트림, 헤더 압축, 서버 푸시 등의 성능 향상에 초점을 맞춘 기능 추가

 

 

 

 


참고

728x90
반응형
LIST