HTTP 란 ?
HyperText Transfer Protocol의 줄임말로 HTML 문서(웹을 이루는 파일)와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다.
우리가 네이버를 들어가려고 할 때 네이버의 대한 정보(HTML 문서)를 가지고 올 수 있게 하는 프로토콜입니다.
HTTP 통신
HTTP 통신은 일상생활로 치면 음식점 직원과 손님입니다.
음식점 직원은 Server 손님은 Client 입니다.
손님이 먹고싶은 음식을 직원에게 요청하면 직원은 음식을 만들어 손님에게 제공해줍니다.
웹에서도 동일하게 일어납니다.
Client(사용자)가 웹사이트(네이버)에 접속 요청 시 Server(네이버 서버)는 요청한 웹사이트를 Client(사용자)에게 제공해줍니다.
무슨 요청을 보고 웹사이트를 제공해주는 건지는 아래 HTTP 메시지 부분에서 자세히 설명하였습니다.
그렇다면 우리가 평소에 네이버를 띄우고 네이버 창이 나오는 과정 속에서 HTTP 통신이 일어나고 있다는것을 이제 알 수 있겠네요.
이러한 HTTP 통신의 특징으로는 웹사이트를 띄워주고 바로 연결이 끊는다는 특징(비연결성)이 있습니다.
Client 가 요청 한 값을 Server가 Client에 보내주면 연결을 끊습니다.
지속적 연결을 통해 데이터를 받아오는 것이 아닌 HTTP 통신을 사용한다면
아래와 같이 인터넷 연결(통신)이 끊어져도 웹사이트가 계속해서 보이는 것을 확인 할 수 있습니다.
참고) 지속적으로 연결(채팅 등)이 필요한 경우에는 HTTP통신이 아닌 Socket 통신을 보통 사용합니다.
웹사이트를 전송해주면 연결을 끊는 비연결성 특징을 가진 HTTP 통신을 사용한다면 Server의 부하가 감소하는 장점이 있습니다.
지금까지 HTTP 특징 및 개념을 알아보았는데,
그렇다면 서버에서는 무엇을 보고 그에 맞는 데이터를 전송 해주는 건가요?
HTTP 메시지
보통 우리나라 음식점에서 다른나라의 언어를 사용하여 주문하면 의사소통 부재로 주문이 어려우므로 우리나라 언어를 사용하여 주문을 해야합니다.
사용자도 정해진 형식을 통해 요청을 해야 서버가 이해하고 정해진 웹사이트를 제공해줍니다.
이러한 정해진 형식을 HTTP 메시지라고 합니다.
HTTP 메시지는 응답/요청 두가지 형태로 나눠지며 몇 줄의 텍스트 정보로 구성됩니다.
텍스트 정보는 라인 - 헤더 - 바디 형식으로 구성되어있습니다.
1. 라인 :
메시지의 기본 내용인 응답/요청 여부, 메시지 전송 방식, 상태 등이 작성되며 한줄로만 작성됩니다.
POST / HTTP/1.1
POST/GET 등의 전송 메서드를 정의하고
다음으로는 요청 내용에 대한 경로가 오고,
요청 형식에 대한 버전 정보가 맨 첫줄 작성됩니다.
2. 헤더 :
메시지 본문에 대한 메타 정보가 들어가는 부분으로,
필요한 만큼 여러 줄로 작성되며 길이가 유동적입니다.
바디와 헤더의 구분을 짓기 위해 한 줄의 공백을 넣어줍니다.
Host: localhost:8000
Content-Type: multipart/form-data;
Host란 도메인 및 포트번호 값을 넣어주고
Content-Type이란 메시지의 타입을 나타냅니다.
3. 바디 :
실제로 보내고자 하는 메시지 본문 내용이 들어가는 부분이며, 응답과 관련된데이터 또는 문서를 포함합니다.
길이가 유동적입니다.
바디에 들어가는 메시지 형식은, 헤더의 Content-Type에서 설정한 Type과 일치해야 합니다.
이렇게 HTTP 메시지까지 알아보았고, 그렇다면 HTTPS 는 무엇일까요 ?
HTTPS 란 ?
Hypertext Transfer Protocol Secure 의 약자로 HTTP 와 동일한데 뒤에 Secure라는 단어가 추가된 것을 의미합니다.
HTTP를 사용하면 해커가 웹 통신 간 패킷을 훔쳐보는 스니핑을 통해 개인정보 및 기타 정보들을 가로채가는 것을 보호하기 위해 HTTPS를 사용합니다.
HTTP 와 HTTPS의 차이점
HTTP 는 암호화 되지 않은 평문으로 데이터를 전송합니다.
즉 계정, 패스워드를 입력시 암호화가 되어있지 않은 상태이므로 해커가 볼 수 있는거죠
이렇기 때문에 데이터를 보호하기 위해서는 암호화를 해야합니다.
이때 필요한것은 바로 HTTPS 입니다.
HTTPS 는 암호화하여 데이터를 전송합니다.
HTTP 에서 암호화 기능이 추가된 것으로 이해하면 됩니다.
'네트워크' 카테고리의 다른 글
이더넷 PoE(Power Over Ethernet)란 ? (0) | 2023.09.21 |
---|---|
[네트워크] 다중 LAN 윈도우 라우팅 추가/삭제/수정 (0) | 2023.07.28 |
L4 스위치란? (0) | 2022.06.09 |
GET - POST 방식의 특징 (0) | 2022.05.23 |
VLAN 트렁크란 ? (0) | 2022.05.16 |