개발 지식/웹 3

웹사이트 접속 시에 무슨 일이 벌어지는가?

이미 다른 블로그에서 한번씩 정리한 것 같지만, 직접 정리하는 편이 낫다고 생각해서 따로 정리해본다. 용어정리 DNS : 도메인 네임 (시스템) 서버는 URL들의 이름과 IP주소를 저장하고 있는 DB이다. 아이피 주소와 URL을 매핑시켜준다. TCP/IP : 데이터가 웹을 이동하는 방법을 나타내는 통신 규격이다. HTTP : 클라이언트와 서버가 통신할 수 있게 하기 위한 언어를 정의하는 어플리케이션 규약. 이제 웹사이트 접속 시에 일어나는 일들을 차례대로 정리해 보자. 브라우저가 해당 도메인주소와 대응하는 IP주소를 확인 먼저 해야할 것은 나의 IP주소, DNS서버의 IP주소를 찾아야 한다. 위 작업을 하기 위해서는 LAN 밖으로 나가는 Gateway Router를 찾아야 한다. 이것의 IP를 얻기 위해..

개발 지식/웹 2022.11.19

CORS 정리하기

얼마전에 제작한 웹사이트에서 다른 사이트에 axios 요청을 보낼 때 마다 "axios has been blocked by CORS policy" 에러가 계속 떠서 난감했던 적이 있다. 찾아보니 CORS에 관한 문제였는데, MDN을 보고 간단히 정리해 보려고 한다. MDN에 설명이 잘 되어 있드라. 정의 교차 출처 리소스 공유 (Corss-Origin Resouece Sharing)의 약자이다. 이게 생긴 배경부터 정리하면, A.com 사이트에서 B.com에 있는 데이터를 요청할 때 두 개의 사이트는 다른 도메인을 가지고 있으므로, 정상적으로 A.com 사이트에서 B.com 사이트에 데이터를 요청할 수가 없다. 이는 아래 그림으로 잘 설명이 되어 있다. domain-a 사이트에서 domain-a의 웹서버..

개발 지식/웹 2022.10.24

로그인 인증 부수기

최근들어 유저의 인증 로직 관련해서 보완해야 할 점이 보여서 수정 중, 이참에 로그인 인증 관련해서 한번 정리해 보고자 글을 작성한다. 배경 지식 먼저 인증과 인가에 대해서 구분을 하자. 인증(Authentication)은 클라이언트가 주장하는 사용자가 맞는가를 검증하는 과정이다. 인가(Authorization)은 인증 이후에 하는 작업으로, 인증된 사용자가 접근할 수 있는 자원의 확인 절차이다. 예를 들자면 로그인 자체는 인증에 해당된다. 내가 이 서비스의 회원이다는 것을 서버에 요청하고, 이를 확인하는 것이 인증이다. 인증 이후에 내가 게시물을 작성한다면, 나와 관리자를 제외한 다른 유저는 내 게시물을 수정하거나 삭제할 수 없다. 이것이 인가이다. 다음으로 HTTP의 비연결성과 무상태성에 대해서 정리..

개발 지식/웹 2022.10.23