일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 실전프로젝트
- react
- 항해99추천
- 자바스크립트
- jQuery
- JavaScript
- NextJS v13
- db수정
- 항해99
- 동전 0
- 카테고리필터
- 백준
- 프로그래머스
- 부트캠프항해
- 그리디
- 숫자를 별점으로
- 서버 컴포넌트
- 날씨 api
- greedy
- 항해99솔직후기
- 알고리즘
- 클라이언트 컴포넌트
- 배열 중복 제거
- 중복카테고리
- server component
- 항해99후기
- 배열 메소드
- 탐욕알고리즘
- 로딩 후 실행
- 중복선택
- Today
- Total
목록개발/네트워크 (17)
공부 및 일상기록
웹브라우저에서 수행하는 간략한 단계 웹사이트를 호스팅하는 웹 서버의 위치 조회 웹 서버에 연결 특정 페이지를 가져오기 위한 요청 전송 웹 서버의 응답을 처리 사용자가 웹 사이트와 상호 작용할 수 있도록 페이지를 렌더링 기본지식 웹브라우저에서 http://www.google.com 과 같은 URL을 입력하면 브라우저는 인터넷 사이트에서 사이트를 호스팅하는 서버를 파악해야한다. 이는 도메인을 검색해서 주소를 찾는 것이다. 서버, 휴대폰, 스마트냉장고 등 인터넷에 연결되는 디바이스는 모두 IP주소라는 고유한 주소가 있다. IP주소는 3.34.220.186 처럼 4개의 번호가 매겨진 부분이 있다. 하지만 이러한 숫자는 기억하기 어렵다. google.com은 3.34.220.186보다 기억하기 훨씬 쉽다. 마치 ..
인증(Authentication)과 인가(Authorization)의 차이를 알아보자 인증, Authentication 어떤 개체의 신원을 확인하는 과정이다. 보통 어떤 인증요소를 증거로 자신을 증명한다. 온라인에서는 ID와 패스워드를 입력하는 행위가 인증이 될 수 있다. 실생활에서는 공공기관에서 신원확인 시 신분증을 보여주는 것을 생각해보면 된다. 여러개의 절차가 있을 수 있다. 은행의 경우, 본인인증 후 OTP, 보안카드 등의 절차를 추가로 거친다. 인가, Authorization 어떤 리소스에 접근할 수 있는지, 어떤 동작을 수행할 수 있는지 검증한다. 접근 권한을 얻는 일이다. 현실에서는 비행 시 여권과 함께 가져가는 비행기 티켓을 예로 들 수 있다. 여권으로 신분확인이 되더라도 비행기 티켓이 있..
XSS (Cross Site Scripting) 공격자가 상대방의 브라우저에서 스크립트가 실행되도록 만드는 방식이다. 사용자의 세션 가로채기, 웹사이트 변조, 악의적 콘텐츠를 삽입하거나 피싱 공격을 진행하는것이다. 주로 스크립트 코드를 삽입해서 입력이 되면 위와 같은 공격이 진행된다. XSS공격대상 웹사이트 관리자가 아닌 사람이 웹사이트에 악성 스크립트를 삽입할 수 있는 취약점으로 발생될 수 있는 공격이다. 웹 애플리케이션이 사용자로부터 입력받은 값을 제대로 검사하지 않고 사용할 경우 나타난다. 주로 여러 사용자가 보게되는 전자 게시판에 악성 스크립트가 담긴 글을 올리는 형태로 이뤄진다. 이 취약점으로 해커가 사용자의 정보(쿠키나 세션)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 하거나 할 수 있..
검색엔진 최적화 (SEO, Search engine optimization) 는 무엇인가? 검색엔진이 이해하기 쉽도록 홈페이지의 구조와 페이지를 개발해 검색 결과 상위에 노출될 수 있도록 하는 작업이다. 기본적인 작업 방식은 특정 검색어를 웹 페이지에 적절하게 배치하고 다른 웹 페이지에서 링크가 많이 연결되도록 하는 것이다. 검색엔진 최적화 방법 1. 문법에 맞는 HTML 작성하기 (Semantic Markup) 태그에는 제목일 기재하고, 태그를 사용해 줄을 바꾸고, 과 태그를 활용해 강조하고 싶은 키워드에 붙이는 등, 적절한 HTML 소스로 홈페이지를 구성하는 것은 결과적으로 검색엔진에게 이해하기 쉬운 웹 문서가 되고, 유사한 내용의 웹 문서가 있을 경우 이러한 문서의 순위가 높아진다. 2.구체적인 페..
토큰 기반 인증 시스템이란? 토큰 기반의 인증 시스템은 인증받은 사용자들에게 토큰을 발급하고, 서버에 요청을 할 때, 헤더에 토큰을 함께 보내도록 하여 유효성 검사를 한다. 이러한 시스템에서는 사용자의 인증정보를 서버나 세션에 유지하지 않고 클라이언트 측에서 들어오는 요청만으로 작업을 처리한다. 즉, 서버 기반의 인증 시스템과 달리 상태를 유지하지 않으므로 Stateless한 구조를 갖는다. 이러한 토큰 기반의 인증 방식을 통해 수많은 문제점들을 해결할 수 있는데, 대표적으로 사용자가 로그인 되어 있는지 안되어 있는지 신경쓰지않고 손쉽게 시스템을 확장할 수 있다. 동작 방식 1. 사용자가 아이디와 비밀번호로 로그인을 한다. 2. 서버 측에서 해당 정보를 검증한다. 3. 정보가 맞다면 서버측에서 사용자에게..
JWT Json Web Token의 약자로 사용자의 인증을 위해서 사용하는 암호화된 토큰을 의미한다. JWT정보를 request에 담아 사용자의 정보열람, 수정 등 개인적인 작업들을 수행할 수 있다. JWT는 개인정보와 같다. 보안 관련 대책이 없이 JWT를 아무 곳에나 저장하면 사용자의 정보를 가져가도 상관없다는 의미와 같다. JWT를 private variable에만 저장하면 안될까? UX상 좋지가 않다. 자바스크립트 변수는 웹페이지를 새로고침하면 사라지는 휘발성이다. JWT를 프라이빗 변수에 저장하는것이 안되는것은 아니지만 사용자 입장에서 새로고침할때마다 새로 로그인을 해야하는 문제를 겪어야 할 수도 있다. 매우 불편하게 된다. 따라서 프라이빗 변수에만 저장하는 방법은 피해야 한다. 그럼 어디에 저..
HTTP (Hyper Text Transfer Protocol) 인터넷에서 데이터를 주고 받을 수 있는 프로토콜이다. 웹서버에서 통신하기 위해 사용하는 하나의 규칙으로써 4가지 요청 형식이 존재한다. GET: 문서를 요청, 클라이언트에 상태정보와 복제된 문서를 보냄을써 응답을 함 HEAD : 상태정보를 요청, GET과 동일한 형태로 응답하지만 문서를 복제하지 않는다. POST : 데이터를 서버로 송신, 서버는 해당 데이터를 특정 아이템에 덧붙인다. (생성) PUT : 데이터를 서버로 송신, 서버가 특정 아이템을 완전히 대체한다. HTTP는 요청과 응답으로 이루어져 있다. IP / MAC / ARP 우리가 많이 알고있는 IP (Internet Protocol)는 각각의 패킷을 IP주소와 MAC주소를 통해 ..

TCP 3-Way Handshake란? TCP는 장치들 사이의 논리적인 접속을 성립하기 위해 3-Way Handshake방식을 사용한다. 3-Way Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. Client -> Server : TCP SYN Server -> Client : TCP SYN ACK Client -> Server : TCP ACK 여기서 SYN은 snychronize sequence numbers, ACK는 acknowledgement의 약자이다. TCP의 3 Way HandShaking 역할 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하..