본문 바로가기

프로그래밍 지식/웹 개발

HTTP 기본 지식 - HTTP의 특징

HTTP

HTML, TEXT, IMAGE, 음성, 영상, 파일, Json, XML등 거의 모든 형태의 데이터를 HTTP로 전송가능하다. 

 

기반 프로토콜

TCP : HTTP:/1.1, HTTP/2

UDP: HTTP/3

주로 HTTP/1.1을 사용하며 나머지도 증가하는 추세이다 .

 

HTTP의 특징 

무상태 프로토콜(stateless)

  • 서버가 클라이언트의 상태를 보존해 주지 않는다.
  • 서버의 확장성이 높다
  • 연결을 끊는순간 상태정보를 유지 하지 않기 때문에 추가 데이터를 전송해야한다.(cookie의 탄생 배경

비 연결성

  • request를 서버에 보내고 서버가 그에 맞는 response를 해주면 연결을 끊는다
  • 서버 접속 -> 요청 -> 응답 후 서버의 연결이 끊기기 때문에 그다음 정보는 저장되지 않는다
    (연결이 끝나면 이전 상태를 기억하지 못한다.)
  • 매 연결시마다 TCP/IP 연결을 해줘야 하기 때문에 시간이 추가된다.
    (해당 방식은 persistent http라는 방식을 통해 개선되었다.
    하나의 TCP 연결을 사용해서 복수의 HTTP 요청 및 응답을 받는개념)

 

 

HTTP 메세지 구조 

기본 HTTP 메세지 구조 

 

http-message는 기본적으로 아래와 같이 구성되어있다.  

  • start-line
  • *(header-field CRLF) 다중으로 선언가능하다
  • CRLF(한줄 띄우기, 엔터)
  • [message-body] 생략가능


start-line

start line에서는 실행되어야 할 요청 또는 요청에 대한 성공및 실패가 기록이 되어있다.

 

시작라인은 reqeust line  과 status line으로 구성되어있다.

request-line

  • HTTP Method(GET, POST , PUT, DELETE 등)
    서버가 수행해야 할 동작을 지정한다(GET: 조회및 검색, POST: 작성및 처리,DELETE: 삭제요청등)
  • 요청대상(ex /search?query=hello)
    절대 경로(/)로 작성해야한다 (ex :/log?format=json&hasfast=true)
  • HTTP Version
    마지막에 HTTP Vesrion을 넣어준다 

loy124.tistory.com/368

 

HTTP 기본 지식 - HTTP Method

URI를 설계 할 때 가장 중요한 것은 리소스를 식별하는것이다 예를 들어 상품 주문을 예로 들면 상품 리스트 가져오기 상품 정보 등록하기 상품 정보 가져오기 상품 정보 수정하기 상품 정보 삭

loy124.tistory.com

 

status-line

status 라인은 아래와 같이 구성이 되어있다. 

  • HTTP-Version
  • status-code
    요청 성공, 실패 등을 나타내 준다(200번대: 성공, 400번대: 클라이언트 요청 오류, 500번대: 서버 내부 오류)
  • reason-phrase
    사람이 이해할 수 있는 짧은 상태 코드를 설명한 글이다 

loy124.tistory.com/371

 

HTTP 기본 지식 - HTTP Status Code

HTTP Status Code 해당 HTTP Status Code는 HTTP 요청에 대한 상태를 알려줍니다. 응답은 크게 100번대 ~ 500번대 까지 5개의 그룹으로 나누어져 있습니다. 100번대(informational) 요청이 수신되어 처리중 200번..

loy124.tistory.com

HTTP Header

HTTP Header는 HTTP 전송에 필요한 모든 부가정보를 같이 보내준다 (ex 캐시정보, 서버정보, 인증등등)

 

HTTP Request Header
HTTP Response Header

 

 

HTTP Header는 field-name: field-value  구조로 되어있다 

loy124.tistory.com/372

 

HTTP 기본 지식 - HTTP Header

HTTP Header HTTP Header는 클라이언트와 서버가 요청또는 응답으로 부가적인 정보를 전송 할 수 있게 해준다. (압축, 인증, 캐시, message body의 내용 및 크기 등등..) 헤더의 종류 General Header 메세지 전체.

loy124.tistory.com

HTTP Body

HTTP Body 에는 실제 전송할 데이터들이 담겨있다. 

 

 

 

HTTP Request Body
HTTP Response Body