브라우저에 URL을 치면 일어나는 일
→우선, 브러우저에서 DNS 서버에서 도메인 명으로 IP주소를 가져오게 됩니다. 그리고HTTP Req 메시지 작성을 하구요, OS의 프로토콜 스택에 메시지 전송을 의뢰하게 됩니다. 그럼 프로토콜 스택이 제어정보를 붙인 패킷을 LAN 어댑터에 넘기게 되구요. .LAN 어댑터는 이를 전기신호로 변환시켜 LAN 케이블로 송출하게 됩니다. 그러면 송신된 패킷은 허브, 스위치, 라우터를 경유해서 프로바이더(ISP)에게 전달이 되구요. 패킷은 수많은 액세스 회선을 통해서 POP를 거쳐 인터넷 핵심부에 들어가게 되고, 많은 고속 라우터들 사이로 패킷이 상대방 서버까지 도달하게 됩니다. 서버측 LAN에 도착하게 되면, 방화벽이 패킷을 검사하게 되고요. 이상이 없을 경우에는 캐시서버가 먼저 응답 데이터가 있는지 확인하게 됩니다. 하여 캐싱된 데이터가 없을 경우에는 웹서버에 전송을 하구요. 패킷이 웹서버에 도착하면 프로토콜 스택은 패킷을 추출하여WAS에 전달하게 됩니다. WAS는 응답메시지를 만들어서 다시 클라이언트에게 보내게 되는데요. 이때는 이미 말씀드린 방법대로 클라이언트에게 전달을 하게 됩니다.
쿠키와 세션
HTTP는 상태와 연결에 대한 정보를 저장하지 않기 때문에, 상태 유지에 사용되는 것.
쿠키의 경우, 브라우저를 통해 클라이언트의 스토리지에 저장되거나 브라우저의 메모리에 저장 될 수 있습니다. 통신할 때에 헤더에 포함되어 전송되게 됩니다. 데이터가 클라이언트 측에 존재하기 때문에 보안에 취약할 수 있는 단점이 있습니다.
세션은 데이터를 서버에 저장해 놓고, 서버에 저장된 공간을 표시할 수 있는 SessionID만 쿠기에 내려보내게 됩니다. 보통 세션아이디가 저장된 쿠키는 클라이언트의 브라우저 메모리에 저장되게 됩니다. 때문에 브라우저를 종료했다 다시 시작하거나, 시크릿 모드등을 통해 브라우저 메모리를 따로 쓰게 되면, 세션이 유지가 되지 않습니다.
클라이언트 메모리에는 세션 ID만 저장되고, 데이터는 서버 측에 존재하기 때문에 보안에 강하지만, 그만큼 서버의 리소스를 점유한다는 단점도 있습니다.
REST API, REST ful 이란?
HTTP 응답 코드
HTTPS
암호화 프로토콜을 사용하여 HTTP 통신을 안전하게 하는 프로토콜
HTTP 단점
도청 가능
위장 가능
응답 변조 가능
도청은 암호화를 통해서, 위장은 인증서를 통해서 보완
→ HTTPS는 HTTP에 3가지 문제가 있어서 사용하게 되었습니다.
HTTP의 문제점이란, 첫째, 평문 통신을 해서 도청이 가능합니다.
둘째, 통신상대를 확인하지 않아서 위장이 가능합니다.
마지막으로는 완전성을 증명할 수 없기 때문에 변조가 가능합니다.
그래서 이 세가지를 보완하고자 사용하는 것이 HTTPS이고, 구체적으로는 HTTP 통신을 암호화 프로토콜을 사용해서 TCP와 통신하도록 하게 됩니다. 또 인증서로 상대의 신원을 보증할 수 있습니다.