40일차 TIL 210430

1. 스프린트 통해서 알게 된 것

  • SPA 방식 image
  • 관련 UI는 프론트 서버에서, 데이터는 백엔드 서버에 요청하는것
  • UI가 뜨는 시간이 엄청 빨라진다.
  • 이경우 두 개의 서버에서 전달 받아야 하기 때문에 CORS 허용이 필요한 것.
  • Same-origin policy : 브라우저의 기본 설정은 하나의 서버만 연결 허용한다.
  • 같은 서버인지 여부를 구분하는 법 : 프로토콜, 호스트(도메인), 포트번호 가 같은가?
  • http://(프로토콜)urclass...(도메인)8080(포트번호)
  • 포트번호는 일반적으로 숨겨져 있다.
  • JSON.parse() : 문자열을 json 파일로 바꾼다.
  • JSON.stringifiy() : 객체를 json 파일로 바꾼다.
  • json() 는 fetch 에서 제공하는 메소드이다.

2. 브라우저가 CORS 를 처리 하기 위한 세가지 시나리오

  • 단순요청(Simple Request) : 바로 url 보내면서, 서버에게 cors 허용해? 라고 물어보는것
  • Pre-flight Request : 옵션 케소드를 통해서 미리 물어보는 방법. cors 허용하지 않으면 통신ㅇㅊ티 끊긴다. 메인 리퀘스트를 하기전에 수행
  • Credentialed Request : 인증정보를 포함한 요청

3. XSS공격 : 악성코드를 주입하는 행위

  • 공격 : html 태그를 브라우저에서 웹서버로 전송 , 서버는 html tag 응답해준다.
  • 그런데 브라우저는 html tag를 해석하고 실행해버리는 식으로 진행되는 해킹 방법.
  • tag의 꺽쇠 표시를 문자열로 표시하는 등의 방법으로 방어한다 = 세니타이징

4. CSRF 공격 : 서버가 클라이언트를 신뢰해서 발생하는 이슈

5. Node.js 란?

  • 자바스크립트를 컴파일 해주는 엔진으로 빌드 된 자바스크립트가 구동중인 환경이다.
  • 이벤트 기반의 non blocking 모델로 속도가 빠르다.

6. HTTP request methods

  • GET : 특정 리소스를 가져오도록 요청
  • POST : 데이터를 서버로 제출하는 용도. 서버 상태의 변화를 일으킨다.
  • PUT : POST와 비슷하다. 연속적인 요청시에도 같은 효과를 가져온다. 기존 데이터를 교체하는 용도로 사용됨
  • DELETE : 리소스의 삭제를 요청할 때 사용

image

7. HTTP reponse status codes

  • 200 : 요청 성공
  • 304 : 요청에 대한 응답이 수정되지 않음
  • 403 : 컨텐츠에 접근할 권한 없음
  • 404 : 요청받은 리소스를 사용할 수 없음
  • 500 : 서버가 처리할 수 없는 요청

8. 네이버 로그인 후, 메일 함에 들어가면 로그인 한 아이디의 메일 리스트가 뜬다. 왜?

  • http stateless 함에도 불구하고 로그인 후 메일 페이지에 들어가면 해당 아이디의 메일 리스트가 뜬다.
  • 쿠키라는 것이 도와주고 있을 뿐. 로그아웃 하면 쿠키 정보 삭제 된다.

Updated: