HTTP
-
JWT, Cookie, XSS, CSRF :: 마이구미HTTP 2020. 6. 14. 15:35
이 글은 JWT, Cookie, XSS, CSRF 에 대해 다룬다. JWT 와 Cookie 기반 인증 시스템의 차이점에 대한 내용을 기반으로 XSS, CSRF 를 다룰 것이다. 참고 자료 - https://medium.com/redteam/stealing-jwts-in-localstorage-via-xss-6048d91378a0 각 용어에 대한 간략히 설명한 후, 다른 링크로 대체하겠다. JWT - JSON Web Token 으로 토큰의 형태이다. (https://en.wikipedia.org/wiki/JSON_Web_Token) Cookie - 사용자 컴퓨터에 방문 기록, 로그인 정보 등과 같은 데이터를 기록할 수 있는 작은 파일 형태를 나타낸다. XSS - Cross Site Scripting 으로 ..
-
SSL : Let’s Encrypt 무료 인증서 적용 :: 마이구미HTTP 2018. 5. 19. 21:19
이 글은 SSL 인증서를 무료로 적용할 수 있는 Let's Encrypt 을 다뤄본다.웹 사이트를 운영하기에 있어, 필수적인 기능이라고 볼 수 있다.실습환경은 Amazon Linux AMI 이다. 현재 본인도 Github Pages 를 통해 포트폴리오 사이트에 SSL 적용하고 있다.Github Page 에서는 다른 서버와 통신을 위해 https 프로토콜을 사용했기 때문이다.포트폴리오 사이트 - https://hotehrud.github.io/portfolio-vue 우선 용어의 개념을 간단히 살펴보자. HTTP, HTTPS 의 차이는 무엇인가? HTTP와 HTTPS 의 차이는 Secure 로써, 보안이라고 볼 수 있다.HTTPS 프로토콜은 전송되는 데이터를 암호화해서 보냄으로써, 데이터 노출의 안전이 보..
-
캐시된 파일은 서버에 요청하지 않는가? :: 마이구미HTTP 2018. 3. 14. 17:39
제목 그대로 캐시(Cache) 에 대한 관한 글이다.그 외에도 본인이 작성한 캐시를 주제로 하는 글들이 존재한다.먼저 읽는다면, 좋을 것이다.메모리 캐시 vs 디스크 캐시캐시 제어 응답 헤더 설정 본인이 의문은 다음과 같았다.누군가에게는 너무나 당연한 내용일 수도 있다.(부끄럽지만 서버쪽 지식이 부족해서 의문이 생긴 거라고 볼 수 있다.) 클라이언트가 서버에게 보내는 요청에 대한 응답이 캐시되었다면, 다음에는 서버에 요청없이 브라우저 자체에서 처리하는가? 위와 같은 예는 다음과 같다. 개발자 도구를 통해 확인할 수 있듯이, 위와 같은 경우는 메모리 캐시 또는 디스크 캐시로부터 가져온다.이와 같은 경우에서 서버에 요청 여부에 대한 의문이다. 캐시를 활용하기 때문에, 서버에 요청할 이유가 없다.그렇다는건, ..
-
data URL vs Image file :: 마이구미HTTP 2018. 1. 7. 22:43
이 글은 data URL 과 Image file 을 비교하는 글이 된다.data URL에 집중했다는 점을 참고바란다.이전에 작성된 메모리 캐시와 디스크 캐시에 대한 글을 보고 오면 좋다.메모리 캐시 vs 디스크 캐시 - http://mygumi.tistory.com/275* 2018.05.01 수정 이미지를 화면에 표시하는 방법에는 크게 2가지가 있다.data url 형태와 일반적인 image file 이다. // data url // image file data URL 방식의 가장 장점은 다음과 같다. 스프라이트 이미지처럼 HTTP 요청을 절약할 수 있다.HTML 파일로 관리할 수 있다. 알려진 단점은 다음과 같다. 캐시되지 않아 매번 불러와야한다.기존 파일보다 용량이 30% 커진다.일부 브라우저에서 ..
-
메모리 캐시 vs 디스크 캐시 :: 마이구미HTTP 2017. 12. 23. 15:16
이 글은 메모리 캐시와 디스크 캐시에 대해 다룬다.(2018.01.07 수정)웹 개발 시 캐시에는 크게 2가지로 나눌 수 있다.클라이언트 측 또는 서버측을 활용한 캐시 사용이다.서버를 통한 캐시 활용은 예로 CDN 서버를 들 수 있고, 클라이언트는 브라우저 캐시이다.여기서는 브라우저 캐시를 다뤄본다.브라우저 캐시는 크게 메모리 캐시와 디스크 캐시로 나뉜다. (크롬 기준)참고 - http://d2.naver.com/helloworld/1059747 개발자 도구를 통해 다음과 같은 모습을 볼 수 있다. Size 항목에서 from memory cache와 from disk cache 를 볼 수 있다.또한 Size 항목에 따른 Time 항목에서도 많이 차이가 난다는 것을 볼 수 있다.캐시를 통해 가져온다는 것은..
-
OSI 7계층 모델 :: 마이구미HTTP 2017. 12. 23. 00:42
이 글은 OSI(Open Systems Interconnection Reference Model) 7 계층 모델을 다룬다.네트워크 관련 수업이나 기술을 접해야 할때, 우선적으로 나타나는 용어이다.그만큼 네트워크의 시작이라고 봐도 무방하다.각 계층이 하는 기능에 대해 자세한 것들은 많은 글들에서 볼 수 있다.그렇기에 본인은 세부적인 개념들은 생략하고, 이해를 돕기 위한 글을 작성했다. OSI 7계층은 국제표준기구(ISO) 에서 개발한 모델이다.용어의 해석대로 개방형 시스템 상호연결을 위한 모델이라는 것을 알 수 있다. 어떠한 것이든 호환과 관리를 위해 규약과 같은 서로간의 약속이 필요하다.이렇듯 네트워크 통신에서도 마찬가지다. 만약 서로 다른 업체의 장비를 통신한다고 생각해보자.서로 다른 구조 및 개발 방..
-
REST API를 위한 HTTP 상태 코드 :: 마이구미HTTP 2017. 10. 10. 20:26
이 글은 REST API 설계를 위한 기본적인 HTTP 상태 코드를 다룬다.일반적으로 실제 주로 이용하는 상태 코드들을 다룬다.조금 더 자세한 내용과 다른 상태 코드는 링크를 참고바란다.http://www.restapitutorial.com/httpstatuscodes.html또한, REST API를 기반으로 HTTP 상태 코드를 다룬다는 것을 인지하자. 기본적으로 성공은 200, 잘못된 요청은 400, 서버 오류는 500 이라고 알고 있다.그 결과, 안 좋은 사례로는 위와 같은 상태 코드를 한정적으로 사용하는 모습을 많이 볼 수 있다. 여기서 의문이 들 수 있다. 왜 한정적으로 사용하는 것이 안 좋은 사례인가? 성공은 200, 실패는 400, 오류는 500 더 간단하고 직관적이지 않은가? => 클라이언..
-
캐시 제어 응답 헤더 설정 :: 마이구미HTTP 2017. 4. 19. 10:35
이번 글은 캐시 제어에 관련된 응답 헤더들을 다뤄본다."HTTP 완벽 가이드" 책과 stackoverflow의 관련 글들을 참고하여 작성하였다. Cache-Control: no-cache, no-store, must-revalidate 위와 같은 헤더들을 통해 캐시를 막을 수 있다.알고 있었다면, 분명 헤더들의 의미 또한 알고 있을 것이다.그렇다면 왜 굳이 3가지 모두를 명시해줘야하는가? 의미를 알고 있다면, 의미상 no-store 만을 명시해줘도 되지 않는가?그렇다면 왜 3가지 모두 명시해줘야하는가?에 대한 의문이 들어, 알아본 결과를 통해 글을 작성하게 되었다. 의문을 해결하기에 앞서, 차근차근 살펴보겠다. 캐시는 불필요한 데이터 전송을 줄임으로써, 많은 효과를 주게 된다.하지만 웹 개발에 있어, 목..