들어가며
이번주 면접 스터디 주제인 네트워크에 대해 학습을 진행중입니다.
프론트엔드 개발자는 CS 중에서도 특히 네트워크에 관한 지식이 중요하다고 들어서
면접 질문 중 출제 빈도가 많은 내용을 위주로 공부하면서 포스팅해보고자 합니다.
오늘은 HTTP를 주제로 잡고 CS책과 MDN, SSL 사이트를 참고하면서
핵심내용을 정리해보았습니다
HTTP
Hyper Text Transfer Protocall
하이퍼텍스트 전송 프로토콜클라이언트와 서버사이에 일어나는 요청/응답 규약
HTTP의 특징
- 단방향 통신
클라이언트는 요청, 서버는 응답하는 통신 구조 - 무상태성
HTTP 통신에서 서버는 클라이언트의 상태를 저장하지 않음
즉, 서버는 이전에 클라이언트가 어떤 요청을 했는지 상관없이 응답을 보낸다. - 무연결성
클라이언트와 서버가 요청/응답을 주고 받으면 연결을 끊음
➡️ 즉, http는 접속 유지에 리소스를 소모하지 않음
연결을 유지하는 대신 요청할 때 헤더에 정보를 담아 보내는 방법을 사용한다.
HTTPS
HTTP의 보안 버전
SSL이나 TLS 를 사용해 클라이언트와 서버 간 모든 통신을 암호화 한다.
즉, 클라이언트가 민감한 정보를 서버와 안전하게 주고받도록 할 수 있다.
HTTPS 장점
- 보안
통신을 암호화하기 때문에 네트워크 상의 인터셉터를 방지할 수 있다. - SEO
HTTP, HTTPS 사이트 내 모든 요소 동일하다면 HTTPS 서비스에 가산점 부여
HTTPS 단점
- SSL 인증 절차에 따른 시간과 비용
- HTTPS를 지원한다고 해서 무조건 안전한 것은 아니다.
자체적으로 인증서를 발급할 수도 있고,
신뢰할 수 없는 CA 기업을 통해서 인증서를 발급받을 수도 있기 때문이다.
참고자료
- 면접을 위한 CS 전공지식 노트 - chapter 2 네트워크
- SSL.com - HTTPS의 장단점
- SSL.com - HTTPS란?