[공부] HTTP 특징

서보인·2022년 7월 6일
0

공부

목록 보기
3/4
post-thumbnail

📷 📸 📷 📸 📷 📸 📷 📸 📷 해당 글의 썸네일 입니다 📷 📸 📷 📸 📷 📸 📷 📸 📷

✅ INTRO
WEB 개발 관련 개념 공부를 기록하고자 합니다.
해당 내용에 대해서 부족한 부분이나 잘못된 부분 지적해 주시면 감사하겠습니다.

목차

1. HTTP란 ?
2. HTTP의 특징

1. HTTP(Hyper Text Transfer Protocol)란 ?

인터넷에서 데이터를 주고 받을 수 있게 해주며 , HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜을 HTTP 라고 한다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초라고 볼 수 있으며 , 우리는 현재 HTTP 세상 속에서 살고 있다고 봐도 무방하다.


2. HTTP(Hyper Text Transfer Protocol)의 특징

HTTP의 특징은 간략하게는 다음과 같이 요약 할 수 있다.

  • 클라이언트 서버 구조로 데이터 교환
  • 무상태(Stateless)
  • 비 연결성(Connectionless)
  • HTTP 메세지

1) 클라이언트 서버 구조로 데이터 교환

✔️ HTTP는 클라이언트 → 서버 구조로 이루어져 있다.
✔️ 클라이언트는 서버에 요청을 보내고 응답을 대기한다.
✔️ 서버는 요청에 대한 결과를 클라이언트에 응답한다.

(1) 클라이언트가 브라우저를 통해서 어떠한 서비스를 URI를 통해 서버에 요청(Request)
(2) 서버에서는 해당 요청에 대한 결과를 응답(Response)

✅ 하기 아래 그림을 통해 HTTP 데이터 교환 방식을 좀 더 쉽게 이해를 할 수 있다.

여기서잠깐 ! URI(Uniform Resource Identifer)는 무엇일까 ?

  • 인터넷 자원을 나타내는 고유 식별자 라고 한다.
  • URI는 URL과 URN으로 분류된다.
  • 해당 내용은 자세하게 다시 포스팅 될 예정이다 (작성일자 미정) .

2) 무상태(Stateless)

✔️ 서버가 클라이언트의 이전상태를 보존하지 않는다는 의미
✔️ 클라이언트의 요청에 어느 서버가 응답해도 상관 X
→ 무한 서버 증설 가능 + 응답 서버 변경가능 = 확장성 향상

✅ 하기 아래 그림을 통해 무상태(Stateless)를 좀 더 쉽게 이해를 할 수 있다.

3) 비 연결성(Connectionless)

✔️ 클라이언트와 서버가 한 번 연결을 맺은 후 , 클라이언트 요청에 대해 서버가 응답을 마치면 맺었던 연결을 끊어버리는 성질을 말한다.
✔️ 해당 비 연결성의 특징으로 인해 연결을 유지하기 위한 네트워크 리소스 자원을 효율적으로 사용 할 수 있다.

하기 아래 그림을 통해 비 연결성(Connectionless) 좀 더 쉽게 이해를 할 수 있다.

4) HTTP 메세지

✔️ HTTP 메세지의 구성은 기본적으로 출발선/헤더/바디 로 나눠진다.
✔️ 클라이언트의 요청이냐 , 서버의 응답이냐에 따라 내용이 달라지지만 , 모두 HTTP 메세지의 구성은 출발선/헤더/바디로 기본적으로 같다.

📌 HTTP 메세지(REQUEST)

(1) 출발선 (Start Line)

  • 메세지의 최상단 첫번째 줄을 의미한다.
  • 해당 출발선에는 (GET , POST , PUT) 등과 같은 HTTP 메서드 , URI , HTTP 버전 등이 작성되어 있다.

(2) 헤더 (Headers)

  • 요청에 대한 추가적인 내용을 담고 있다.
  • 사실 헤더도 크게 3가지 (General/Request/Entity)로 나눠지지만 , 결국 다 요청에 대한 추가적인 내용이다.
  • HOST는 클라이언트가 요청하는 호스트에 대한 정보 , User-Agent는 클라이언트에 대한 각종 정보가 있다.
  • Accept 부분은 클라이언트 측에서 원하는 데이터 타입을 나타낸다

(3) 본문 (Body)

  • 본문의 경우 요청의 경우 있을수도 있으나 , 없을 수도 있다.
  • 응답의 경우 요청에 대한 응답 데이터를 보내야 하기에 , 본문에 대부분 내용이 있다.

하기 아래 그림은 HTTP 메세지 (REQUEST)의 예제이다.

📌 HTTP 메세지(RESPONSE)

(1) 출발선 (Start Line)

  • 메세지 최상단 첫 줄이 출발선을 의미한다.

(2) 헤더 (Headers)

  • 요청 측 헤더와 동일한 기능을 한다.
  • 요청에 따른 응답에 대한 다양한 정보가 실려있다.
  • Content-Type은 클라이언트에게 전송된 자료의 종류 , 인코딩 방식 등을 말한다.
  • Date는 해당 메세지가 만들어진 날짜를 말한다.

(3) 본문 (Body)

  • 클라이언트가 요청한 제대로 수행되서 나온 결과물이 반환된다.
  • 기본적으로 하기 아래의 화면이 톰캣을 이용해 서버를 구축하고 로컬 서비스에 접속 했을 때 가장 기본으로 나오는 화면이다.

하기 아래 그림은 HTTP 메세지 Body에 해당한다(톰캣 실행시 반환되는 값)

하기 아래 그림은 HTTP 메세지 (RESPONSE)의 예제이다.

profile
개발 및 이슈 , 공부한 내용을 기록합니다.

0개의 댓글