우리는 웹브라우저에서 웹사이트 주소를 입력할 때 www.***.com 이런 식으로 입력하곤 합니다. 그럴 때마다 항상 앞에 http:// https://가 자동으로 입력되는 걸 볼 수 있었습니다. 그리고 우리는 원하는 웹사이트에 접속을 합니다.
당연하다고 생각했던 것을 다시 한번 살펴보면, 갑자기 궁금해집니다.
http와 https는 무엇일까요?
바로 http와 https를 설명하기 전에 앞서 통신 프로토콜을 설명해야겠습니다.
저번에 서버-클라이언트를 설명하면서 식당을 예로 들어 설명했습니다. 그 예를 한번 더 이용하겠습니다.
2020/07/31 - [서비스 기획] - 알아두면 좋은 개발 용어1 (서버, 클라이언트, HTML, CSS, JavaScript )
식당 주인은 서버였고, 손님을 클라이언트였습니다. 처음에는 식당 주인과 손님 간에 규칙이 없었습니다. 식당에 손님이 많아지고 하니 식당 주인이 메뉴를 외우는 게 어려워졌어요. 그래서 이 음식점은 김밥천국처럼 원하는 메뉴를 체크해서 식당 주인한테 전달해줘야 음식을 받을 수 있도록 하는 규칙을 만들었습니다.
바로 이러한 규칙이 프로토콜입니다. 많은 다수의 컴퓨터와 시스템이 연결된 상황에서는 이런 규칙을 만들어놓지 않으면 서로 통신을 할 수 없겠지요. 그래서 사실 프로토콜의 종류는 많이 있습니다.
- 프로토콜(Protocol) : 통신 프로토콜 또는 통신 규약이라고 불리는데, 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계
HTTP와 HTTPS도 인터넷상에서 가장 유명한 프로토콜 중에 하나입니다.
- HTTP(HyperText Transfer Protocol) : 인터넷 상에서 데이터를 주고 받을 수 있는 통신 프로토콜
- HTTPS(HyperText Transfer Protocol over Secure Socket Layer) : SSL(Secure Socket Layer)을 이용하여 보안이 강화된 HTTP 프로토콜
HTTP는 인터넷 상에서 데이터를 주고 받기 위해서 많이 사용되는 프로토콜입니다. 하지만 데이터를 주고 받는데 있어 암호화를 하지 않는 단점이 있었습니다. 그래서 해커에 의해 정보가 탈취되는 경우도 있었죠. 이러한 것들을 보완하기 위한 프로토콜의 등장, 바로 HTTPS입니다. HTTPS는 데이터를 주고 받을 때 암호화를 해서 주고 받게 되니, 정보를 탈취해도 암호화 값이니 해석할 수 없는 것이지요.
프로토콜과 HTTP와 HTTPS에 대해서는 이해가 되셨나요?
그럼 HTTP를 조금 더 들어가보겠습니다.
클라이언트가 서버에게 https://www.abc.com 사이트을 열어달라고 요청합니다. 서버는 응답에 사이트의 정보 구조, 형식 등이 있는 HTML 문서를 전달합니다. 그래서 우리가 abc 웹 사이트를 볼 수 있는 것입니다.
근데 HTTP는 클라이언트가 요청을 하면 응답을 해주고 연결을 끊어버리는 방식이기 때문에 데이터가 남아 있지 않습니다. 그래서 쿠키와 세션이 등장하게 되었습니다. 나중에 정리할게요!
간단하게 HTTP 메소드와 상태 코드를 확인해보려고 합니다.
클라이언트는 서버에게 abc 사이트의 데이터를 전달해줘 라고 이야기할 수 있습니다. 요청할 때 사용하는 명령어(?)가 바로 메소드입니다. (명령어라고 하기에는 좀 다른 의미긴 하지만, 우선 쉽게 이해하실 수 있도록 정리했습니다.)
HTTP Method 종류
- GET : 데이터 요청
- POST : 데이터 생성 요청
- PUT : 데이터 수정 또는 데이터가 없으면 생성 요청
- PATCH : 데이터 업데이트 요청
- DELETE :데이터 삭제 요청
HTTP의 Status Code를 통해서 클라이언트 요청이 제대로 전달되었는지, 서버나 클라이언트에서 오류가 생겼는지 확인할 수 있습니다. 꼭 요청을 한 서버에서만 오는 것이 아니라 실제로 프록시 서버 등에서도 서버가 응답하지 않을 경우 해당 값을 전달해줍니다.
제 블로그 제목이 404 Not Found 인데요. 404는 4XX 오류기 때문에 클라이언트 오류로 나타나는 것이구나, 를 확인할 수 있습니다.
HTTP Status Code 종류
- 1XX (조건부 응답) : 임시 응답 작업 진행
- 2XX (성공) : 클라이언트 요청 성공 처리
- 3XX (리다이렉션 완료) : 클라이언트는 요청을 마치기 위해 추가 동작 필요
- 4XX (요청 오류) : 클라이언트 오류
- 5XX (서버 오류) : 서버 오류
오늘은 프로토콜, HTTP, HTTPS에 대해서 알아보았습니다.
다음 시간에는 세션, 쿠키, 캐시 등을 알아보도록 하겠습니다.
참고 :
- 프로토콜 : https://ko.wikipedia.org/wiki/%ED%86%B5%EC%8B%A0_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
- HTTP : https://velog.io/@surim014/HTTP%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
- HTTPS : https://dololak.tistory.com/541
'개발용어' 카테고리의 다른 글
알아두면 좋은 개발용어 5 (세션) (1) | 2021.05.09 |
---|---|
알아두면 좋은 개발용어 4 (쿠키) (0) | 2021.05.02 |
[CSS] word-break 이해하기 (0) | 2021.03.02 |
알아두면 좋은 개발용어 2 (Web Server, WAS, DB, DB테이블) (6) | 2020.08.08 |
알아두면 좋은 개발용어 1 (서버, 클라이언트, HTML, CSS, JavaScript) (0) | 2020.07.31 |