목록공부/네트워크 (3)
빠에야는 개발중
에피소드 어쩌다보니 회사에서 기존에 운영하고 있던 데모 시스템의 UI를 수정하게 됐는데, React.js를 사용한 WEB UI였다. 로컬 테스트를 위해서 클라이언트와 서버(golang으로 작성되어 있음)를 띄웠고 로그인을 시도했는데, CORS 경고가 떴다. 그래서 실제로 동작하고 있는 클라우드 서버의 네트워크 로그를 보며 공부해보았다. CORS란? CORS란 Cross Origin Resource Sharing의 약자로 브라우저의 현재 웹페이지가 이 페이지를 받은 서버가 아닌 다른 서버의 자원을 호출하는 것을 의미한다. 이것을 허용하면 악의적인 도메인으로의 요청을 무조건 허용하게 되어 보안 문제가 발생할 수 있다. 그래서 HTTP 스펙에서 이에 대한 기준을 제시하고 있다. 나는 CORS를 ip만 같으면 ..
똑같이 http가 들어간 이름들이지만 그 목적은 다르다고 할 수 있다. 그렇다면 서로 다른 두 가지의 주제를 왜 한 게시물에 쓰느냐… 그건 http/2가 https를 보조하는 역할을 어느 정도 해주기 때문이다. 결코 https 내용이 짧아서 그런게 아니다.(강조) https https는 http의 취약한 보안을 극복하기 위하여 등장한 프로토콜이다. 간단히 말해서 데이터를 암호화 하자는 것인데, 기존의 http는 통신 정보(메소드, url, 버전 등)를 모두 평문으로 주고 받는다. 그렇기 때문에 해킹에 매우 매우 취약하다고 할 수 있다. 이것을 SSL/TLS 프로토콜로 암호화 해줌으로써 향상된 보안을 꾀하는 것이 https이다. 당장에 s의 뜻이 secure에서 오는 것만 봐도 알 수 있다. https는 ..
목적 http는 connectionless하고 stateless한 프로토콜이다. 매 요청마다 연결을 맺고 끊으며 클라이언트와 서버 간의 상태를 공유하지 않는다. 하지만 이런 http의 특징은 사용성에 있어서 불편함을 초래하는데, 예를 들어 쇼핑몰 따위의 장바구니 서비스는 상태 유지가 안되면 존재 자체가 불가능하다. 그렇기 때문에 서로의 연결을 유지하는 장치가 필요한데, 그것이 쿠키와 세션이다. 그렇다면 둘은 어떤 차이가 있을까? 쿠키 쿠키는 클라이언트, 즉 브라우저에 파일 형태로 정보를 저장하는 방법이다. 이름의 유래는 헨젤과 그레텔 동화에서 집을 찾기 위해 뿌렸던 쿠키에서 가져왔다.(결국 다 먹혀버리지만) 브라우저는 최초에 서버와의 연결이 성공하면 상태 정보를 쿠키로 저장하고 다음 요청부터 reques..