[네트워크] JWT란? 0. 들어가기 전에 JWT를 개념을 처음 접하게 되어서 정리해보았습니다. 1. JWT란? Json 포맷을 이용하여 사용자의 정보를 저장하는 토큰 JWT는 Json Web Token의 약자로, 토큰 자체에 정보를 Json 포맷 형식으로 저장하여 사용한다. 1.1 JWT 구조 [ 헤더 ] JWT에서 사용할 타입(typ)과 해시 알고리즘의 종류(alg)가 담겨 있음 [ 페이로드 ] 토큰에서 사용할 정보를 담고 있음 이러한 정보들의 조각을 claim이라고 함. 서버에서 첨부한 사용자 권한 정보의 데이터 토큰에 대한 데이터 [ 서명 ] (헤더를 Base64로 인코딩한 값 + "." + 페이로드를 Base64로 인코딩한 값)를 서버의 비밀키를 이용해서 헤더에 명시된 알고리즘으로 암호화된 값 ..
CS/[NETWORK]
쿠키와 세션 1. 쿠키와 세션을 사용하는 이유 HTTP 프로토콜의 특성 때문 → 서버가 클라이언트가 누구인지 매 요청 마다 확인을 해야 함. 무상태 프로토콜 : 통신의 상태를 유지하지 않음 비연결성 : 클라이언트가 응답을 받으면 연결을 끊음 2. 쿠키 클라이언트 로컬에 저장되는 키와 값이 들어있는 데이터 HTTP의 일종 특징 이름, 값, 만료일(저장기간), 경로 정보로 구성 클라이언트에 총 300개의 쿠키를 저장 가능 하나의 도메인 당 20개의 쿠키를 가질 수 있음 하나의 쿠키는 4KB까지 저장 가능 Response Header에 Set-Cookie 속성으로 만들 수 있음 사용자가 요청하지 않아도 브라우저가 Request를 할 때 Request Header를 넣어서 자동으로 서버에 전송 동작 방식 클라이..
Chapter 7 HTTP 헤더2 - 캐시와 조건부 요청 이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. 1. 캐시의 기본 동작 캐시가 없을 때 데이터가 변경이 되지 않아도 네트워크를 통해서 데이터를 다운로드 받아야 함. 느린 사용자 경험을 야기 캐시를 적용 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 네트워크 사용량을 줄여서 빠른 사용자 경험을 만듦 캐시 가능 시간이 초과되면 다시 요청해야 함. 2. 검증 헤더와 조건부 요청 캐시 만료후에도 서버에서 데이터를 변경하지 않았으면, 캐시를 재사용 할 수 있음 → 검증이 필요 검증 헤더 : 캐시 데이터와 서버 데이터가 같은지 검증하는 데이터 Last-Modified : 데이터 최종 수정일 데이터 최종 수정일을 비교하여 검증 함. 검증..
Chapter 7 HTTP 헤더1 - 일반헤더 이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. 1. HTTP 헤더 header-field = field-name ":" OWS field-value OWS (OWS : 띄어쓰기 허용, field-name은 대소문자 구별X) 용도 HTTP 전송에 필요한 모든 부가 정보 ex) 메시지 바디의 내용, 크, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표준 헤더가 많고, 필요시에 임의의 헤더 추가 가능 분류(과거) HTTP 헤더 General 헤더 : 메시지 전체에 적용되는 정보 ex) Connection: close Request 헤더 : 요청 정보 ex) User-Agent: Mozilla/5.0 (Macintosh; ....
Chapter 6 HTTP 상태 코드 이 학습 자료는 김영한님의 인 프런 강의를 참고해서 만들었습니다. 1. HTTP 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx(Informational) : 요청이 수신되어 처리중 2xx(Successful) : 요청 정상 처리 3xx(Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx : 서버 오류, 서버가 정상 요청을 처리하지 못함. 1.1 2xx 200 OK 201 Created : 요청 성공해서 새로운 리소스가 생성됨 202 Accepted : 요청이 접수되었으나 처리가 완료되지 않음 ex) 배치 처리 204 No Content : 서..
Chapter 5 HTTP 메서드 활용 이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. 1. 클라이언트에서 서버로 데이터 전송 쿼리 파라미터를 통한 데이터 전송 GET, 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 2. 조회 방법 2.1 정적 데이터 조회 이미지, 정적 텍스트 문서 조회 조회 GET 사용 정적 데이터는 일반저긍로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 2.2 동적 데이터 조회 쿼리 파라미터(스트링) 사용 조회 조건을 줄여주는 필터(검색어), 결과를 정렬하는 정렬 조건에 사용 조회는 GET 사용 → 쿼리 파라미터를 사용하여 데이터 전달 2.3 HTML Form 데이터..
Chapter 4 HTTP 메서드 이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. 1. HTTP API 설계 API URI는 리소스에 의미(식별)를 부여해야 한다. 리소스 : 회원이라는 개념 자체 URI 계층 구조를 활용해야 한다. 리소스와 행위를 분리해야 한다. 행위 : 조회, 등록, 삭제, 변경 등 → HTTP 메서드로 구별 2. HTTP 메서드 GET : 리소스 조회 POST : 요청 데이터 처리, 주로 등록에 사용 PUT : 리소스를 대체, 해당 리소스가 없으면 생성 PATCH : 리소스 부분 변경 DELETE : 리소스 삭제 HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환 OPTIONS CONNECT TRACE 2.1 GET 리소스 조회할 때 사용..
Chapter 3 HTTP 기본 이 학습 자료는 김영한님의 인프런 강의를 참고해서 만들었습니다. 1. HTTP HyperText Transfer Protocol HTTP 메시지에 모든 것을 전송(이미지, 음성, 영상, JSON 등) 1.1 기반 프로토콜 TCP : HTTP/1.1, HTTP/2 UDP : HTTP/3 현재 HTTP/1.1 주로사용 1.2 HTTP 특징 클라이언트 - 서버 구조 무상태 프로토콜(스테이스리스), 비연결성 단순함, 확장 가능 HTTP 메시지 1.2.1 클라이언트 서버 구조 Request Response 구조 클라이언트는 서버에 요청을 보내고, 응답을 대기 서버가 요청에 대한 결과를 만들어서 응답 1.2.2 무상태(Stateless) 프로토콜 서버가 클라이언트의 상태를 보존X 장..