[IT]/Network

[HTTP] HTTP의 구조 및 특징

ee2ee2 2021. 1. 17. 16:44
728x90
반응형

1. HTTP 란?

 : Hypertext Transfer Protocol의 약자로, 통신 프로토콜.

   - WEB에서는 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 사용됨.

   - WEB 상에서 HTML을 서로 주고 받을 수 있도록 만들어진 프로토콜(통신 규약)

 

  "난 이렇게 줄테니, 넌 이렇게 받아" -> 이런식으로 형식을 정해놓은 것

  프로토콜이란, 상호 간에 정의한 규칙을 의미하며 특정 기기 간에 데이터를 주고 받기 위해 정의된 규격


2. HTTP 프로토콜 특징

 : Stateless (상태가 없는) 프로토콜.

   Stateless란, 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리되는 것.

   즉, 이전 요청과 다음 요청이 서로 관련이 없다는 뜻!

 

   일반적으로 TCP/IP 통신 위에서 동작하며 기본 포트는 80번

 

더보기

▪ 장점 

1) 서버가 별도의 세션과 같은 추가 정보(진행, 연결 상태의 처리 등)를 관리하지 않아도 됨.

2) 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 성능 상의 이점.

 

▪ 단점 

1) HTTP 요청을 보낼 때 마다, 해당 요청을 처리하기 위해 필요한 모든 데이터를 매번 포함시켜 요청

 

- 단점을 해결하는 방법?

   쿠키(cookie) , 세션(session)등을 사용하여 HTTP 요청을 처리할 때, 필요한 진행 과정이나 데이터 저장.

 

 

* 쿠키 (Cookie) ?

 : 웹 브라우저가 웹 사이트에서 보내온 정보를 저장할 수 있도록 하는 파일

 

* 세션 (Session) ?

 : 쿠키와 마찬가지로, HTTP 통신 상에서 필요한 데이터를 저장할 수 있게 하는 것.

 

세션과 쿠키의 차이점.

 -> 쿠키는 웹 브라우저 (Client) 측에서 데이터를 저장.

     세션은 웹서버에서 데이터를 저장.


3. HTTP 통신 방식 (Request & Response)

 :  HTTP 프로토콜로 데이터를 주고받기 위해서는 요청(Request)을 보내고, 응답(Response)를 받아야한다.

 

* Client ? 

  : 요청을 보내는 쪽. 일반적으로 브라우저를 의미

 

* Server ?

 : 요청을 받는 쪽 (요청 받은 결과값을 Return). 일반적으로 데이터를 보내는 쪽

 

 

HTTP Request (요청)

 : HTTP 요청 메세지의 구조. (URL + 요청 메소드)

 

 - Header

    : HTTP 요청 그 자체에 대한 정보들. 

더보기

 - Host : 요청이 전송되는 타겟의 호스트 URL

 - User-Agent : 요청을 보내는 클라이언트에 대한 정보 (웹 브라우저에 대한 정보)

 - Accept : 해당 요청이 받을 수 있는 응답(Response) Body 데이터 타입을 제공

 - Connenction :  해당 요청이 끝난 후에, 클라이언트와 서버가 계속해서 네트워크 연결을 유지할 것인지 아닌지에 대한 헤더

 - Content-Type : HTTP 요청이 보내는 메세지 Body의 Type

 - Content-Length : HTTP 요청이 보내는 메세지 Body의 총 사이즈

+ 헤더와 바디 사이에는 1줄의 공백이 존재. 이를 통해, 헤더의 종료와 바디의 시작을 뜻함.

 

 - Body

 : HTTP 요청이 전송하는 데이터를 담고 있는 부분. 전송하는 데이터가 없으면 Body는 비어있게 됨.

(로그인 창에 ID / Password 를 입력하게 전달하고자 할때, Body 부분에 입력 데이터를 포함하여 전송)

 

 

 

 HTTP Respinse (응답)

: HTTP 응답 메세지의 구조.


@ 출처 (참고 사이트)

- joshua1988.github.io/web-development/http-part1/

- juyoung-1008.tistory.com/9

'[IT] > Network' 카테고리의 다른 글

[Network] IP 클래스(A,B,C class)란?  (0) 2022.07.01