(부디 틀렸거나 이해가 잘 되지 않게 설명된 내용에 대해 댓글들 달아주세요 !)
Http
: HyperText Transfer Protocol
Http는 WWW(World Wide Web), 일반적으로 인터넷이라 부르는 웹 상에서 정보를 주고 받을 수 있는 프로토콜입니다.
프로토콜은 무엇일까요 ?
사전으로는 '컴퓨터 내부에서, 또는 컴퓨터 사이에서의 데이터 교환 방식을 정의하는 규칙 체계'로 설명됩니다.
이해를 돕기 위한 비유로 택배 송장이 가장 적절할 것 같습니다.

프로토콜이 컴퓨터 사이의 데이터 통신을 위한 규칙체계라면,
사람 사이에 우편을 주고받는 규칙이 바로 택배 송장인것입니다 !
(택배회사마다 다른 양식을 갖고있듯, 컴퓨터 통신을 위한 프로토콜 형식 역시 목적에따라 여러 규칙을 갖고있습니다.
자세한 내용은 -> OSI 7 Layer 알아보기(미작성))
택배 송장을 보면 보내는사람의 성명, 전화, 주소, 받는사람의 성명, 전화, 주소가 있듯, HTTP 프로토콜에도 데이터통신을 하기위한 형식이 있습니다.

알 수 없는 영어가 마구 쓰여져있지만, 구조에 주목해본다면 택배 송장과 꽤 비슷하게 생겼음을 알 수 있습니다.
물론, 위의 이미지를 인쇄해서 양식을 작성한다음 스캔해서 데이터를 보내는 것이 아니라,
문자열 형식으로 데이터를 요청하고, 받는 형식으로 사용됩니다.

예를들어, 명령 프롬프트에 'curl https://www.naver.com/'을 입력해보겠습니다.
curl : Client URL의 약자로, 윈도우나 유닉스계열(Linux, MacOS 등)에서도 사용할 수 있는 명령줄 도구입니다.
다양한 프로토콜을 사용해 데이터를 전송할 수 있으며, 택배 송장 양식에 대한 직접작성 없이 테스트해보기 아주 좋은 도구입니다.
이는 'https://www.naver.com/' 주소로 GET요청을 보내는 명령어 입니다.
('GET요청'이 명령어 어디 쓰여있나요? : 생략되어있다면 기본 GET 요청을 전송합니다.)
'GET요청'이란 HTTP 메서드를 지칭하는데, GET 외에도 POST, PUT, DELETE 등 다양한 메서드를 사용할 수 있습니다.
(자세한 내용은 -> HTTP메서드 알아보기(미작성))

네이버 홈페이지 주소로 요청을 보내고 받은 응답입니다.

그런데 받은 응답을 자세히 보면! 익숙한 HTML 태그들이 보입니다.
또, 네이버 메인에 접속하면 보이는 한글 텍스트도 보입니다.

인터넷 브라우저(크롬, 엣지 등)을 이용해 네이버(www.naver.com)에 접속해 F12키를 눌러 개발자 도구를 열고,
Elements 탭으로 이동해보면 비슷한 것을 볼 수 있습니다.
사실 우리가 받은 외계어같은 긴 응답구문은 사실 네이버 메인페이지의 HTML 문서인 것입니다.
그렇다면 어떻게 'curl https://www.naver.com/' 한줄로 네이버 메인페이지의 html 문서를 가져올 수 있었을까요 ?
처음 이야기했던 프로토콜 양식을 사실은 절반 이상 작성했습니다.
'https://www.naver.com/'
URL이라 불리는 이 한 줄 안에 많은 것이 담겨있습니다.

URL의 구조는 위 사진과같은 구조를 갖고있습니다.
1. 통신 프로토콜(스키마) : 어떤 프로토콜을 이용한 요청인지를 나타냅니다.
2. 호스트 : 웹 사이트가 호스팅되는 서버의 도메인(아이피 대신 사용되는 영문주소) 입니다.
3. 3차 도메인(서브 도메인) : 메인 도메인 내의 하위 섹션을 나타냅니다.
4. 2차 도메인(메인 도메인) : 조직이나 서비스의 고유 이름을 나타냅니다.
5. 1차 도메인(최상위 도메인) : 도메인의 목적이나 지역을 나타냅니다.
6. 포트번호 : 서버의 특정 서비스에 접근하기 위한 번호입니다. (생략시 기본값 사용, http는 80, https는 443)
7. 디렉터리 : 서버 내의 파일 경로를 나타냅니다.
8. 파일 : 접근하려는 특정 파일의 이름입니다.
9. 파일 형식 : 파일의 확장자로, 파일의 유형을 나타냅니다.
10. 쿼리(쿼리스트링) : 서버에 추가 정보를 전달하는 매개변수 입니다. '?' 뒤에 오며, 여러 매개변수는 '&'로 구분합니다.
갑자기 사진 하나에서 모르는 용어가 마구 등장했습니다.
지금은 URL 구조가 이런식으로 이루어져 있다만 알고계시면 될 것 같습니다.
자세한 내용은 다음 DNS 게시글에서 다루도록 하겠습니다 !
'Network' 카테고리의 다른 글
| P2P(Peer-To-Peer) 네트워크, 그리고 토렌트는 어떻게 동작할까? (1) | 2025.02.28 |
|---|---|
| CDN(Content Delivery Network) 알아보기 (1) | 2025.02.10 |
| Wi-fi(와이파이) 어떻게 동작하는지 알아보기 (2) | 2025.01.31 |
| SSH에 대해 알아보기 (10) | 2025.01.16 |