CS 공부

네트워크 (2) - HTTP/HTTPS

toritole 2024. 4. 28. 15:15

1. HTTP

인터넷상에서 데이터를 전송하기 위한 프로토콜

 

- 비연결성

응답을 받으면 연결을 끊는다.

서버가 클라이언트를 기억하지 못하는 단점을 해결하고자 HTTP Keep Alive 를 사용하여 일정 시간 연결 유지

 

- 무상태

클라이언트가 이전에 요청한 사항을 서버에 저장하지 않는다.

클라이언트가 데이터를 모두 가지고 있거나 (쿠키), 서버가 요청 사항을 모두 저장해야 한다. (세션)

대신 서버 확장성이 높다.

* 쿠키 : 웹 브라우저에 저장하는 데이터 파일. 로그인 정보와 장바구니

* 세션 : 서버에 데이터 저장. 보안성은 높지만 서버 과부하 위험

 

 

2. HTTP 메시지

서버와 통신하기 위해 주고 받는다.

 

- 구조

요청 메시지 : 요청 라인, 헤더, 바디

응답 메시지 : 상태 라인, 헤더, 바디

 

- 상태 코드

1xx : 요청 처리 

2xx : 요청을 성공적으로 처리

3xx : 요청 처리 위해 추가 처리 필요

4xx :  클라이언트 오류

5xx : 서버 오류

 

 

3. HTTPS

보완 계층인 SSL/TLS를 이용해 HTTP의 보안을 강화한 웹 통신 프로토콜

* SSL(Secure Socket Layer) : 넷스케이프에서 개발한 암호화 프로토콜

* TLS(Transport Layer Security) : SSL에 문제가 있어서 보완된 새로운 암호화 프로토콜. 현재 HTTPS에서 통용되는 방식


HTTP 계층은 응용-전송-인터넷-네트워크 인터페이스 계층으로 이루어져 있지만

HTTPS 계층은 응용-*보안*-전송-인터넷-네트쿼크 인터페이스 계층이다.

 

데이터를 송신할 때 응용에서 보안 계층으로 데이터를 보내면 암호화해서 전송 계층으로 전달한다.

수신할때 전송에서 보안 게층으로 보낸 데이터를 복화해서 응용 계층에 전달한다.

 

SSL/TLS 암호화 방식에는 2가지가 있다.

- 대칭키 암호화 : 암호화, 복호화에 동일한 대칭키를 이용하는 방식. 대칭 키가 유출되지 않도록 조심해야 한다.

- 공개키 암호화 : 암호화, 복호화를 다른 키로 하는 방식. 암호화는 공개키, 복호화는 비밀키

 

 

4. 웹 페이지 접속 과정

사용자가 URL을 입력했을 때 화면이 나타나기까지의 과정 정리

1) 사용자가 URL을 웹 브라우저에 입력한다.

2) URL을 바탕으로 DNS 서버에서 IP 주소를 찾는다.

3) IP를 통해 서버와 TCP/IP 연결을 하고 HTTP 요청을 보낸다.

4) 서버로부터 받은 응답을 바탕으로 웹 페이지에 보여준다.