HTTP 특징
- 클라이언트 서버 구조
- 무상태 프로토콜, 비연결성
- 무상태 프로토콜
- 장점 : 서버 확장성 높음 / 단점 : 클라이언트가 추가 데이터 전송
- 비 연결성
- 요청을 주고받을 때만 연결을 유지, 응답을 주고 나면 TCP/IP 연결을 끊음으로써 최소한의 자원으로 서버 유지가 가능
- 무상태 프로토콜
- HTTP 메세지
- 단순함, 확장가능
HTTP Headers의 종류와 특징
표현 헤더
- HTTP 메시지 : 헤더 / 바디로 구분이 가능
- HTTP 바디 : 데이터 메시지 본문을 통해서 표현 데이터를 전달한다.
- 페이로드 : 데이터를 실어 나르는 부분
📷 표현 헤더 형식
주요 요청 헤더
- From: 유저 에이전트의 이메일 정보
- Referer: 이전 웹 페이지 주소
- User-Agent: 유저 에이전트 애플리케이션 정보
- Host: 요청한 호스트 정보(도메인)
- Origin: 서버로 POST 요청을 보낼 때, 요청을 시작한 주소를 나타냄
- Authorization: 인증 토큰(e.g. JWT)을 서버로 보낼 때 사용하는 헤더
주요 응답 헤더
- Server: 요청을 처리하는 ORIGIN 서버의 소프트웨어 정보
- Location: 페이지 리디렉션
- Allow: 허용 가능한 HTTP 메서드
- Retry-After: 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간
콘텐츠 협상 헤더 : 요청시에만 사용
- Accept: 클라이언트가 선호하는 미디어 타입 전달
- Accept-Charset: 클라이언트가 선호하는 문자 인코딩
- Accept-Encoding: 클라이언트가 선호하는 압축 인코딩
- Accept-Language: 클라이언트가 선호하는 자연 언어
HTTPS 특징
- HTTP Secure의 약자로, 단어 뜻 그대로 기존의 HTTP 프로토콜을 더 안전하게(Secure) 사용할 수 있음을 의미
- HTTPS가 HTTP와 달리 요청과 응답으로 오가는 내용을 암호화한다.
암호화 방식
- 대칭 키 암호화 방식 : 하나의 키만 존재
- 암호화 방식 : 사용한 키와 동일한 키로 복호화 가능
- 연산 속도가 빠르지만 키를 관리하는데 신경을 많이 써야함
- 공개 키(비대칭 키) 암호화 방식
- 암호화 방식 : 두개의 키를 사용(공개키,비밀키), 암호화할 때 사용한 키와 다른키로만 복호화가 가능
- 비밀키가 없으면 복호화가 불가능하므로 보안성이 더 좋음, 대칭키 방식보다 더 많은 시간을 소모
SSL/TLS 프로토콜
- HTTPS는 HTTP 통신을 하는 소켓 부분에서 SSL 혹은 TLS라는 프로토콜을 사용하여 서버 인증과 데이터 암호화를 진행
- CA를 통한 인증서 사용
- 인증서를 발급해 주는 공인된 기관들을 Certificate Authority, CA라고 부름
- 순서
- 서버 : CA로 서버의 정보,공개 키 전달
- CA : 공개 키, 정보를 CA 비밀 키로 암호화하여 인증서 발급
- 서버 : 클라이언트에게 요청을 받으면 해당 CA에게 발급받은 인증서를 보냄
- 대칭 키, 공개 키 암호화 방식을 모두 사용
- 순서
- 클라이언트 : 데이터를 암호화하여 주고받을 때 사용할 대칭키 생성
- 클라이언트 : 생성한 대칭키를 서버의 공개 키로 암호화여 전달
- 서버 : 전달받은 데이터를 비밀 키로 복호화하여 대칭 키 확보
- 순서
- 위의 과정이 끝나면 서버와 클라이언트는 동일한 대칭 키를 갖게됨
- CA를 통한 인증서 사용
정리
- 서버와 클라이언트 간의 CA를 통해 서버를 인증하는 과정과 데이터를 암호화하는 과정 : SSL & TLS
- HTTP에 SSL/TLS 프로토콜을 더한 것 : HTTPS
'Front end > 개발 지식' 카테고리의 다른 글
[ Proxy ] CORS Error를 React에서 해결하는 방법 (0) | 2023.06.08 |
---|---|
소프트웨어 개발 프로세스 자동화 : CI/CD (0) | 2023.06.07 |
[네트워크] 심화 알아보기 (0) | 2023.05.06 |
[사용자 친화 웹] 웹 표준 & 접근성 (0) | 2023.05.04 |
[ UI / UX ] 와이어프레임 & 프로토타입 (0) | 2023.04.15 |