wasup

HTTP) HTTP 특징, HTTP 메시지 본문

IT etc

HTTP) HTTP 특징, HTTP 메시지

wasupup 2021. 8. 12. 00:55
반응형

HTTP

: HyperText Transfer Protocol - html과같은 문서를 전송하는 프로토콜

: HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, XML, 거의 모든 형태의 데이터 전송이 가능하다

: 서버 간 데이터를 주고 받을 때 대부분 HTTP를 사용한다.

 

HTTP/1.1, HTTP/2 : TCP 위에서 동작함

HTTP/3 : UDP 기반으로 개발이 되어있다.

 


HTTP 특징

클라이언트 서버 구조

: Request Response 구조

: 클라이언트는 서버에 요청을 보내고, 응답을 대기

: 서버가 요청에 대한 결과를 만들어서 응답

무상태 프로토콜 

: Stateless(스테이스리스) - 서버가 클라이언트의 상태를 보존하지 않음.

: 서버확장성이 높지만 클라이언트가 추가 데이터를 전송해야한다는 단점이있다.

* Stateful - 상태유지

: 서버가 클라이언트의 상태를 보존. 서버에 문제가 생기면 클라이언트는 데이터를 다시 전송해야함.

* Stateless - 무상태

: 서버가 클라이언트의 상태를 보존하지 않음.

: 갑자기 클라이언트가 증가해도 서버를 대거투입, 무상태는 응답 서버를 쉽게 바꿀 수 있다 -> 무한 서버증설 가능

: 모든 것을 무상태로 설계할 수 없고, 데이터를 너무 많이 차지한다는 단점이 있다.

비연결성(connectionless)

연결을 유지하는 모델 - TCP/IP

: 연결을 유지하는 동안 서버의 자원을 소모

연결을 유지하지 않는 모델

: 서버는 연결을 유지하지 않음으로 최소한의 자원을 사용

: HTTP는 기본적으로 연결을 유지하지 않는 모델이다.

: 일반적으로 초 단위 이하의 빠른 속도로 응답한다.

: 서버 자원을 매우 효율적으로 사용할 수 있다.

: TCP/IP 연결을 새로 맺어야 한다 - 3 way handshake 시간이 추가됨

: 웹 브라우저로 사이트를 요청하면 HTML + javascript, css, image등등 많은 자원이 함께 다운로드됨

: 지금은 HTTP 지속연결로 문제를 해결


HTTP 메시지

HTTP 메시지 구조 HTTP요청 메시지 HTTP응답 메시지
시작라인 : start line GET /search?q=hello HTTP/1.1 HTTP/1.1 200 OK
헤더 : header HOST: www.google.com  


Content-Type: text/html;charset=UTF-8
Content-Length: 3423

공백 라인 : empty line (CRLF)    
메세지 : message body   <html><body>...</body></html>

HTTP 시작 라인

: request-line / status-line 으로 되어있다.

: 요청 메시지 - request-line = method SP request-target SP HTTP-version CRLF

요청 메시지
request-line
method request-target HTTP-version CRLF(엔터)
GET, POST, PUT, DELETE... path  

: 요청 대상 - absolute-path

: 요청 대상은 절대경로 = "/"로 시작한다.

: 응답 메시지 status-line = HTTP-version SP status - code SP reason-phrase CRLF

응답 메시지
status-line
HTTP-version status-code reason-phrase
  상태코드 : 요청의 성공/실패
200 : 성공
400 : 클라이언트 요청 오류
500 : 서버 내부 오류
 

*SP : 공백

*CRLF : 엔터


HTTP 헤더

: header-field = field-name ":" OWS field-value OWS

: HTTP 헤더의 용도

- HTTP 헤더에는 HTTP 전송에 필요한 모든 부가정보가 들어있다.

- 필요시 임의의 헤더도 추가할 수 있다.

 

*OWS : 띄어쓰기 허용

 


HTTP 메시지 바디

: 실제 전송할 데이터가 들어있다.

: HTML, image, 영상, JSON등등 byte로 표현할 수 있는 모든 데이터 전송이 가능하다.


단순함, 확장가능

: HTTP와 HTTP메시지는 단순하다.

: 단순하면서도 확장 가능한 기술이 성공하기 좋다.


[출처]

 

강의 링크 : 

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC

 

참고 링크 : 

반응형
Comments