[3주차] REST API, 웹 보안
·
외부활동/JSCODE 네트워크
REST와 RESTful APIREST는 HTTP 프로토콜을 기반으로 리소스를 정의하고 조작하는 아키텍처 스타일RESTful은 이 REST의 원칙을 준수하여 설계된 시스템을 의미예를 들어, 웹 시스템에서 아래와 같이 API를 디자인할 수 있습니다.REST(원칙)로 설계한 기본 아이디어:리소스를 URI로 표현하고, 각 작업을 HTTP 메서드로 구분한다.RESTful API 구현:GET /products → 모든 상품 조회POST /products → 새 상품 추가DELETE /products/{productId} → 특정 상품 삭제따라서 REST는 리소스와 메서드의 원칙을 제공하는 개념이고, RESTful은 이를 준수하려고 설계된 구현 방식이라고 이해할 수 있습니다.URL, URI, URNURI: 리소스를..
[3주차] 쿠키, 세션, 토큰, CORS
·
외부활동/JSCODE 네트워크
쿠키와 세션쿠키HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 경우,그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다.HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조하거나 재사용할 수 있다. 사용 예시방문 사이트에서 로그인 시, "아이디와 비밀번호를 저장하시겠습니까?"팝업창을 통해 "오늘 이 창을 다시 보지 않기" 체크세션일정 시간 동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술이다.여기서 일정 시간은 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점부터 웹 브라우저를 종료하여 연결을 끝내는 시점을 말한다.즉, 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위..
139. Word Break
·
Algorithm/LeetCode
문제Given a string s and a dictionary of strings wordDict, return true if s can be segmented into a space-separated sequence of one or more dictionary words.Note that the same word in the dictionary may be reused multiple times in the segmentation.Example 1:Input: s = "leetcode", wordDict = ["leet","code"]Output: trueExplanation: Return true because "leetcode" can be segmented as "leet code".Examp..
Forward Proxy, Reverse Proxy
·
Network
Forward Proxy일반적으로 프록시라고 하면 포워드 프록시를 의미한다. 프록시 서버는 같은 내부망에 존재하는 클라이언트의 요청을 외부 네트워크(인터넷)로 중계한다.장점클라이언트 보안: 방화벽 역할. 프록시 서버에 룰을 추가하여 특정 사이트에 접속하는 것을 막을 수 있다.캐싱: ex. 캐싱된 페이지 로드하여 조회 속도 향상암호화: 클라이언트 요청을 프록시 서버에서 암호화. ex. 클라이언트 ip를 (보안을 위해) 감춰주는 역할Reverse Proxy리버스 프록시는 서버의 앞단에 위치하여 클라이언트 요청을 여러 대상 서버로 분산하여 전달하는 역할을 한다.장점로드 밸런싱서버 보안: 웹 서버를 DMZ에 놓고 사용을 할 수 있지만 웹 서버는 통상적으로 DB에 연결이 되어 있으며 웹 서버에 대한 공격이 DB ..
공개키? 개인키?
·
Network
공개키공개키 암호화 과정에서 키 쌍으로 생성되는 키 중 누구나 공개 가능한 키로, 누구나 이 키에 접근 가능하다.개인키공개키 암호화 과정에서 키 쌍으로 생성되는 키 중 개인으 비밀키로, 절대 노출되어서는 안되며, 안전하게 보관되어야 하는 키다.데이터 보안: 아래 시나리오는 공개키로 평문을 암호화 하고, 암호문으로 다시 개인키로 복호화 하는 과정전자 서명: 개인키로 해시값을 암호화 하고, 암호화 된 해시값을 개인키로 복호화 하는 과정전자 서명위 2번의 시나리오에서는 해시값을 개인키로 암호화를 하고, 공개키로 복호화한다. 그렇다는 것은 모든 사람들이 나의 공개키로 복호화를 할 수 있다는 것인데 암호문을 모두가 복호화 한다면 무슨 이점이 있을까?대칭키의 문제점 '부인'을 방지할 수 있다!나의 개인키로 암호화 ..
HTTP/2.0
·
Network
HTTP /2.0 - Binary Protocol기존에 HTTP1.1 대 버전은 메시지 구성이 Plain Text(평문)을 사용하고, 개행으로 구별되었다.HTTP 2.0 대에서는 메세지 구성이 바이너리 포멧으로 인코딩 된 Message, Frame으로 되어있다.쉽게 말하자면 기존에 텍스트 기반으로 Header 와 Data가 연결되어 있었던 HTTP 1.1 대 버전들과 다르게 HTTP/2 는 메세지를 Binary 단위로 구성하고, 더 작은 프레임으로 쪼개서 관리한다.HTTP/2 의 패킷들은 더 작은 단위로 압축이 되는데, 이때 Frame 과 Message, Stream 이라는 개념이 새롭게 도입된다.Frame : HTTP/2 의 통신 최소 단위이다. 모든 패킷에는 하나의 Frame Header가 포함된다...
[2주차] DNS
·
외부활동/JSCODE 네트워크
⭐️ DNS가 뭔가요?DNS(Domain Name System)는 도메인 이름을 IP 주소로 변환해 주는 시스템입니다. 웹사이트의 URL을 입력하면 DNS 서버가 해당 도메인의 IP 주소를 찾아서 사용자가 올바른 서버에 연결되도록 합니다. 쉽게 말해, 사람이 이해하기 쉬운 도메인 이름을 컴퓨터가 이해할 수 있는 숫자(IP 주소)로 바꿔주는 전화번호부 역할을 합니다. 이 과정 덕분에 사용자는 IP 주소를 기억하지 않아도 쉽게 웹사이트에 접속할 수 있습니다.DNS 작동 방식에 대해 설명해주세요.DNS는 사용자가 도메인 이름을 입력할 때, 이를 IP 주소로 변환해 주는 과정입니다. 먼저 사용자의 요청은 로컬 DNS 서버로 전달되며, 여기서 캐시된 IP가 있으면 바로 반환합니다. 없을 경우 루트 네임 서버로 요..
[2주차] HTTPS
·
외부활동/JSCODE 네트워크
HTTPS에 대해서 설명해주세요.HTTPS는 HyperText Transfer Protocol Secure의 약자로, 웹 통신 프로토콜인 HTTP의 보안 버전을 의미한다. 데이터의 안전한 전송을 위해 사용되며, 웹 사이트와 웹 브라우저 간의 통신을 암호화하여 보호한다.HTTPS는 대칭키 암호화와 공개키 암호화를 조합하여 작동한다. SSL(Secure Socket Layer)이나 TLS(Transport Layer Security) 프로토콜을 통해 세션 데이터를 암호화하며, 기본 TCP/IP 포트는 443이고, SSL 프로토콜 위에서 HTTPS 프로토콜이 동작한다.SSL/TLS이 뭔가요?SSL/TLS는 인터넷 상에서 데이터의 안전한 전송을 위한 암호화 프로토콜입니다. SSL(Secure Sockets La..
[2주차] HTTP
·
외부활동/JSCODE 네트워크
HTTP 프로토콜에 대해서 설명해주세요.HTTP(Hypertext Transfer Protocol)는 웹에서 데이터를 주고받는 서버-클라이언트 모델의 프로토콜입니다. 쉽게 설명하자면 웹 브라우저가 서버와 통신하는 규칙이에요.HTTP의 요청/응답 모델에 대해 설명해주세요.HTTP 요청/응답 모델은 클라이언트와 서버 간의 통신 방식을 말합니다. 클라이언트(예: 웹 브라우저)가 서버에 정보를 요청하면, 서버는 그 요청에 맞는 응답을 보내주는 구조입니다.예를 들어, 사용자가 웹 페이지를 요청하면, 클라이언트가 서버에 HTTP 요청을 보내고, 서버는 그 요청에 따라 HTML 문서나 이미지 파일 등의 데이터를 응답으로 반환합니다. 이처럼 HTTP는 요청과 응답의 단방향성을 특징으로 하는 비연결형 프로토콜입니다.HT..
인터넷과 웹의 차이
·
외부활동/JSCODE 네트워크
인터넷은 전 세계 컴퓨터와 네트워크가 서로 연결된 거대한 네트워크로, 사람들이 정보를 공유하고 소통할 수 있게 해줍니다.웹은 인터넷 위에서 실행되는 서비스로, 우리가 브라우저를 통해 웹 문서와 다양한 정보를 쉽게 접근하고 볼 수 있게 해줍니다.What is the Internet?The Internet is a global network of interconnected computers and networks that communicate with each other, allowing people to connect, share information, and conduct business online.What is the Web?The Web is a system of interconnected reso..