Node 강의/입문

1-2 HTTP의 이해

kagan-draca 2024. 8. 28. 19:19

HTTP의 이해

1) HTTP란?

- 데이터를 주고 받는 양식을 정의한 "통신 규약" 중 하나인 HTTP

- 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약

 

통신 규약 : 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속을 의미한다.

 

 

HTTPS는  HTTP를 기반으로 데이터 통신의

안전성을 높이기 위해 암호화 기능이 포함

통신 프로토콜 입니다.

 

HTTP와 달리, HTTPS는 정보를 "암호화"하여 전송합니다.

 

이를 통해 클라이언트와 서버 사이의

데이터가 외부에서 보이지 않게 됩니다.

 

현재 대부분의 사이트는 HTTPS를 지원하고 있다.

 

 

2) 어떻게 HTTP로 데이터를 주고 받을까?

- HTTP에서는 요청(Request)응답(Response)가 존재합니다.

 

서버와 브라우저의 동작을 간단하게 살펴보면

 

1. 브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request) 합니다.

 

2. 서버는 브라우저가 원하는 페이지가 있는지 확인하고,

있다면 해당 페이지에 대한 데이터를 반환(Response)해줍니다.

 

3. 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줍니다.

 

(위와 같은 사례에서 "데이터"는 어떠한 데이터든 주고 받는게 가능합니다)

 

 

3) 브라우저에서 HTTP가 동작하는것을 직접 확인해보자.

 

구글 사이트로 진행

F12를 누르고

Nework를 눌른 후

F5로 새로고침 해주면

 

위와 같이 다양한 데이터가 존재한다는걸 확인할 수 있고,

데이터의 타입으로는 document, script, gif, png 등 다양한 것을 볼 수 있다.

 

그리고, 다양한 데이터 타입을 선택해서 볼 수 있도록 지원하고 있다.

 

거기서 

 

 

www.google.com이라는   document  type의 데이터를 클릭해보면,  

위와 같은 창이 뜨고,

먼저 Headers에 General을 확인해보면

 

어떤 URL을 Request("http://www.google.com)했고, 어떤 메서드를 지정했는지(GET), 서버가 어떤 식으로 처리된 결과를 반환 했는지 확인(200)할 수 있습니다.

 

200 : 정상 조회

404 : 오류 발생

 

밑으로 내려와 Response Headers를 살펴보면

서버가 처리된 결과를 완료한 다음에

추가적으로 부여하는 데이터를 볼 수 있습니다.

 

여기서 설명하는 추가적인 데이터는

 

서버에서 전송한 문자, 데이터 등 전달할 경우

해당 데이터가 무엇을 나타내는지 설명해주는

 

데이터 이다.

 

 

더 내려와 Request Header를 살펴보면

 

웹 브라우저가 해당하는 www.google.com에게 요청을 보낼 때

어떤 정보를 보냈는지를 볼 수 있다.

 

 

현재 살펴보면,

 

www.google.com에게 

 

GET 메서드로

해당하는 /(기본 경로)로

HTTPS라는 프로토콜을

통해 보냈다.

 

 

이제 Response 정보를 살펴보면

 

 

실제 www.google.com사이트가 가 어떤 코드와 JavaScript로

구현 돼 있는지 보여줍니다.

 

4) 데이터(General 항목) 추가 데이터(Response Headers 항목) 뭐가 다른걸까?

 

먼저, HTTP의 구성요소를 살펴보면

 

- Method

Get : 해당 웹 서버에 데이터를 "얻을 때" 사용, 또한 웹 서핑은 모두 GET을 사용한다.

 

POST : 해당 웹 서버에 데이터를 전송하여 "새로운 리소스를 생성 할 때",

서버에서 해당 데이터를 기반으로 "처리 작업을 수행할 때" 사용합니다.

ex) 게시글 작성, 댓글 작성, 회원 가입

 

PUT : 해당 웹 서버의 데이터를 "갱신할 때" 사용 됩니다.

 

DELETE : 해당 웹 서버의 데이터를 "삭제할 때" 사용 됩니다.

 

- Header

1. 브라우저가 어떤 페이지를 원하는지

 

2. 요청 받은 페이지를 찾았는지

 

3. 성공적으로 찾았는지

 

이러한 사례 외에도 아주 다양한 의사 표현을 위한 데이터

모두 Header 필드에 넣어 주고 받습니다.

Method도 Header에 포함 돼 서버로 보내줍니다.

 

- Payload 설명 (데이터. 실질적인 데이터)

1. 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있습니다.

 

2. 클라이언트(브라우저)가 요청을 할 때에는 Payload를 보낼 수 있습니다.

    그리고 "GET" Method를 제외하곤 모두 Payload를 보낼 수 있습니다.

 

3. 추가적으로 "DELETE" Methode에서 Payload를 보낼 수 있지만,

    보통 많은 경우에 Payload를 보내지 않습니다. 

 

'Node 강의 > 입문' 카테고리의 다른 글

1-6 배포를 위한 yarn 학습  (0) 2024.08.30
1-5 Package Manager  (0) 2024.08.30
1-4 Node.js란?  (0) 2024.08.28
1-3 웹 서버의 이해  (0) 2024.08.28
1-1 웹 브라우저의 통신 방식  (0) 2024.08.28