http와 https

김철회·2022년 10월 20일
0

HTTP

HyperText Transfer Protocol의 약자이다. 인터넷 상에서 데이터를 주고 받을 수 있는 프로토콜이다.

예..? 뭐라구요? 여기서 프로토콜은 데이터를 주고 받기 위한 규칙이라고 생각하면 쉽다.
보통 우리는 https://www.google.com 로 접속을 하면 구글의 메인 화면 정보를 얻을 수 있다.(https는 뒤에서 다루어 보자!)
위의 주소는 해당 url에 위치한 정보를 주세요! 라고 말하는 것과 같다.

클라이언트인 사용자가 웹브라우저를 통해 서버에 데이터나 웹사이트, json, html, xml 등을 요청(request)하면 서버에서는 해당 요청에 알맞은 정보를 응답(response)한다.

HTTP의 특징

  • 비연결성 : 연결 상태를 유지하지 않는다. 한 번 연결해서 요청하고 응답하면 거기서 끝이다. 다시 정보를 받고 싶다면 재요청해야 한다.
  • 무상태(stateless) : 상태를 저장하지 않는다는 의미로, 서버가 클라이언트의 상태나 정보를 저장하지 않는다.

(위의 대표적인 특징으로 인해, 쿠키, 세션, 로컬 스토리지의 방식이 생겨났다.)

HTTP의 Request

클라이언트가 서버에 뭔가를 요청하는 것으로 HTTP 통신이 시작된다.

어떻게 요청하나?

Request Method

  • get : 정보를 주세요! ex) 블로그에 써져 있는 글들 보기
  • post : 이 정보를 보내겠습니다 받으세요! ex) 회원 가입을 위한 회원정보
  • put : 이전에 있던 정보를 수정하겠습니다! ex) 회원 정보 수정
  • delete : 이전에 있던 정보를 삭제해주세요! ex) 댓글 삭제

위의 메서드를 사용해서 정보를 받거나 보낼 수 있다. 이렇게해서 클라이언트가 서버에 요청하면 서버는 해당 정보와 메서드에 맞는 응답을 다시 클라이언트에 보내준다.

HTTP의 Response

서버는 response로 상태코드와 해당하는 정보를 다시 클라이언트에게 보내준다.

Status Code

1XX (조건부 응답) : 요청을 받았으며 작업을 계속한다.
2XX (성공) : 거친 개발 속 한줄기 빛이다. 요청과 응답이 모두 성공했다는 의미이다.
3XX (리다이렉션) : 요청을 끝내는 추가 과정이 필요하다는 의미이다.
4XX (요청 오류) : 요청을 보낸 클라이언트에 오류가 있다. 주소가 잘못됐거나, 유효하지 않거나 등을 나타낸다.
5XX (서버 오류) : 요청은 잘 왔지만, 서버가 해결할 수 없는 상태이다.

우리가 웹서핑을 하다보면 자주 만날 수 있는 코드들이다. 404 not found, 500 internal server error 등이 있다. 각 상태코드가 의미하는 바가 조금씩 다르고 이 상태 코드와 응답(response)값을 다시 클라이언트에 보내준다.
그렇다면 웹개발자는 상태 코드에 따라서 원하는 처리를 할 수도 있다.

예를 들어, 로그인에 성공 했을 때 브라우저에 alert 창을 띄울 수도 있다.

HTTP는 알겠는데, 근데 보통 HTTPS로 시작하지 않나?

HTTP의 최대 단점으로 꼽히는 것은 보안이다. 데이터를 주고 받는 것이 HTTP 통신인데, 데이터가 암호화 되어 있지 않다. 누군가가 중간에서 중요한 정보를 가로챌 수 있다는 것이다.
2014년 구글은 HTTP에서 HTTPS로 바꾸라고 권고 했다고 한다.

HTTPS의 장점

1) 보안을 위한 암호화
HTTPS는 SSL을 사용하여 암호화 문제를 해결했다. SSL은 브라우저와 서버 간의 암호화된 연결을 도와주고 민감한 정보를 주고 받을 때 도난을 방지하여 준다. 회원 가입을 할 때, HTTP는 서버에 아이디와 비밀번호 주민등록번호 등을 있는 그대로 전달한다. 중간에 그걸 도난할 수 있다는 의미이다. 하지만 HTTPS는 SSL인증서에 의하여 해당 정보들을 암호화하여 전달한다.

2) 검색엔진 최적화(SEO)
검색엔진최적화란 검색 엔진이 이해하기 쉽게 홈페이지를 개발하여 검색 결과 상위에 노출될 수 있도록 하는 작업을 말한다.
결과적으로, HTTPS는 한층 강화된 보안을 제공하기 때문에 사용자들이 안심할 수 있다. 이에 따라 검색엔진최적화가 가능해진다.

profile
안녕하세요!

0개의 댓글