HTTP 특징

MinSeong Kang·2022년 1월 22일
0

IT 지식

목록 보기
10/11
post-thumbnail

HTTP 특징

  1. 클라이언트 서버 구조
  2. Stateless
  3. Connectionless
  4. HTTP Message
  • 클라이언트 서버 구조

클라이언트가 서버에게 전송하는 메시지를 요청(Request)라고 부르며, 서버가 요청에 대한 결과를 만들어서 전송하는 메시지를 응답(Response)라고 한다.
→ 클라이언트와 서버 구조를 통해 개념을 분리함으로써, 클라이언트는 UI와 사용성에 서버는 비즈니스 로직과 데이터에 집중하여 각각 독립적인 진화가 가능하다.


  • Stateless

HTTP 통신에서 서버는 클라이언트의 상태를 저장하지 않는 무상태 프로토콜을 지양한다. 여기서 클라이언트 상태 저장하지 않는다라는 뜻은 서버는 클라이언트가 이전에 했던 요청이 무엇인지에 대해 상관없이 응답을 한다는 것이다.
→ 클라이언트가 요청시 한번에 많은 양의 데이터를 서버에게 보내야하는 단점은 있지만, 서버에 장애가 발생시 응답 서버를 변경해야하거나 서버를 확장하는 것에 용이하다.

→ 반대로 Stateful의 경우, 서버가 이미 저장하고 있는 상태에 대한 정보를 클라이언트는 따로 요청안해도 되므로 보내는 데이터의 양은 줄어드는 장점은 있다. 하지만 만약 통신하고 있는 서버에 장애가 발생하거나 클라이언트의 요청이 많아져 서버를 변경 혹은 확장하는데에는 한계가 있다.


  • Connectionless

HTTP는 연결을 유지하지 않는 모델이다. 따라서 클라이언트가 서버에게 요청을 보내고 응답을 받게되면 클라이언트와 서버의 연결이 끊는다.
→ 서버 자원을 효율적으로 사용할 수 있다.
→ 클라이언트 요청마다 TCP/IP 연결을 새로 맺어야 하기 때문에 3 way handshake 시간이 추가된다.


  • HTTP Message

클라이언트와 서버간에 데이터가 교환되는 방식이다. 요청(request)는 클라이언트가 서버로 전달하는 메시지이고, 응답(response)은 요청에 대한 서버의 답변이다.

request
① HTTP 메서드 : 서버가 수행해야할 동작 ex) GET, POST, PUT, DELETE...
② 요청 대상 : URL, 프로토콜, 포트, 도메인의 절대 경로로 나타낼수 있다.
③ HTTP 버전

reponse
① HTTP 버전
② HTTP 상태 코드 : 요청의 성공 여부 ex) 200 : 성공, 400 : 클라이언트 요청 오류, 500 : 서버 내부 오류
③ 이유 문구 : 사람이 이해할 수 있는 짧은 상태 코드 설명

구조 : field-name ":" OWS field-value OWS (OWS:띄어쓰기 허용)
용도 : HTTP 전송에 필요한 모든 부가 정보 포함
          ex) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트 정보 등등

용도 : 실제 전송할 데이터 → HTML 문서, 이미지, 영상, JSON 등등 byte로 표현할 수 있는 모든 데이터


참고 자료

https://www.inflearn.com/course/http-웹-네트워크
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
https://kotlinworld.com/97

0개의 댓글