본문 바로가기

Web/Web 이론3

전반적인 웹 통신 과정 이번 포스팅에서는 인터넷 브라우저에 www.google.com을 입력하면 어떤 일이 발생하는지 과정을 알아보려고 한다. 즉, 웹의 전반적인 HTTP 통신에 대해 알아보는 것이다. 이와 관련된 포스트들은 다른 블로그에도 충분히 많기 때문에 참고하면서 작성하였다. 더보기 웹 브라우저에 URL을 입력한다. 브라우저와 로컬에서 DNS 기록이 있는지 확인하고 없으면 ISP에서 DNS 쿼리를 통해 IP 주소를 찾는다. IP 주소를 찾았으면 라우터를 통해 경로를 설정하고 ARP 패킷을 보내 MAC 주소를 찾아내 통신할 준비를 한다. 웹 브라우저와 서버는 TCP 커넥션을 통해 연결을 수립한다. 웹 브라우저는 서버에 HTTP 요청을 보내고 서버는 이에 응답 메세지를 작성한다. 서버는 클라이언트와 TCP 커넥션을 맺고 응.. 2023. 12. 10.
JWT(Json Web Token)에 대한 이론적 이해 인증과 인가 인증에 대해서는 알겠지만 인가에 대해서는 잘 이해가 안될 것이다. 인증(Authentication)은 사용자가 이 서비스의 대한 권한을 부여받은 사용자라는 것을 인증하는 절차이고 인가(Authorization)은 이미 인증이 끝난 사용자가 해당 기능을 사용하기 위한 권한을 허가받는 절차라고 한다. 오늘은 지난 세션인증 방식에 이어 토큰 인증에 대해 중심적으로 다루고 대표적인 JWT(Json Web Token)에 대해서도 알아보려고 한다. 인증 방식 먼저, Client가 회원가입을 하게되면 해당 ID와 비밀번호가 서버 테이블에 저장되게 된다. 이때 테이블에 PW 그대로 저장되는게 아니라 한번 Salting + Hashing을 거쳐 저장되기 때문에 보안을 어느정도는 유지할 수 있다. 이렇게 해시.. 2023. 12. 6.
REST(Representational State Transfer) API 웹의 동작 우리가 웹 사이트에서 어떠한 기능을 이용할 때 클라이언트와 서버 간의 요청, 응답이 이루어진다. 클라이언-서버 구조는 개발 분야에 상관없이 알아야할 개념이다. 다음 그림과 같이 클라이언트와 서버 통신 과정이 이루어진다. 클라이언트(고객)은 요청을 보낸 후, 응답할 때까지 기다린다. 그리고 서버는 받은 요청을 처리한 후, 클라이언트에게 응답을 전송하는 구조이다. 이때, 전달하는 자원의 주소는 URI에 따라 다르게 정해진다. 조금 더 깊에 들어가면, 서버에는 정적인 콘텐츠를 처리하는 Web Server가 있고 동적인 콘텐츠를 처리하는 WAS(Web Application Server)가 있다. 반드시 WAS나 웹서버가 필요하진 않지만 유연한 비즈니스 처리를 위해 사용하는 것이 좋다. Web Serv.. 2020. 9. 21.