네트워크 7

[네트워크] JWT vs 세션

한 줄 정리JWT -> 토큰 기반 인증 (서버가 상태를 저장하지 않음, RESTful API에 적합, 확장성 높음)세션 -> 서버에서 관리하는 인증 방식 (보안성이 더 높고, 일반 웹사이트에 적합)JWT (JSON Web Token)✔️ JWT는 인증을 위한 토큰✔️ 서버에서 발급한 후 클라이언트가 저장 & 사용하는 방식✔️ 로그인 성공 시 서버가 JWT를 생성해서 클라이언트에게 주고, 이후 클라이언트는 JWT를 포함해서 요청을 보냄✔️ 서버는 JWT만 확인하고 요청하기 때문에, 별도의 세션 저장소가 필요 없음 장점확장성 (Scalability) -> 서버에서 사용자가 상태를 저장할 필요가 없어서 수평 확장이 쉬움RESTful API와 잘 맞음 -> 서버가 Stateless(상태가 저장하지 않음)한 구조..

네트워크/기본 2025.03.16

[네트워크] 쿠키 vs 로컬 스토리지 vs 세션 스토리지 vs 세션

✔️ 한 줄 정리쿠키 -> 브라우저 & 서버 간 자동 전송, 작은 데이터 저장로컬 스토리지 -> 브라우저에 영구 저장, 서버에 안 보내도 되는 데이터세션 스토리지 -> 브라우저 탭 닫으면 사라짐, 일시적 데이터 저장 (폼 입력값)세션 -> 서버에서 관리하는 로그인 / 사용자 정보 (보안) 쿠키로컬 스토리지세션 스토리지세션저장 위치클라이언트(브라우저)클라이언트(브라우저)클라이언트(브라우저)서버데이터 크기 제한4KB5MB ~ 10MB5MB ~ 10MB서버에서 관리데이터 보존 기간설정된 만료일브라우저를 꺼도 유지됨(영구 저장)브라우저를 닫으면 사라짐기본적으로 브라우저 종료 시 삭제보안노출 취약상대적 안전상대적 안전서버에서 관리서버 전송 여부자동 전송자동 전송 X자동 전송 X서버에서 관리사용 목적로그인 유지, ..

네트워크/기본 2025.03.15

[네트워크] 쿠키와 세션

한 줄 정리쿠키 -> 클라이언트 저장, 보안 약함, 설정 저장용세션 -> 서버 저장, 보안 강함, 로그인 상태 유지용 쿠키 (Cookie)세션 (Session)저장 위치클라이언트 (브라우저)서버데이터 저장 방식브라우저가 쿠키 파일에 저장서버가 세션 저장소에 저장유지 시간만료 날짜 설정 가능 (영구 보관 가능)브라우저 종료 시 기본적으로 삭제보안데이터가 노출될 위험 있음서버에서 관리하므로 상대적으로 안전사용 목적최근 본 상품, 자동 로그인, 팝업 "오늘 하루 안보기"로그인 정보, 장바구니, 사용자 세션 유지예제Set-Cookie: user=Dengju; Expires=Fri, 31 Def 2025 23:59:59 GMTsession_id=abcd1234쿠키 (Cookie) 🍪클라이언트(브라우저)에 저장되..

네트워크/기본 2025.03.15

[네트워크] HTTP vs HTTPS

한 줄 정리HTTP -> 보안 없음, 데이터 평문 전송HTTPS -> SSL/TLS 암호화로 보안 강화 (데이터 암호화, 무결성, 신뢰성 보장) HTTPHTTPS보안X (데이터 암호화 없음)O (SSL/TLS 암호화 적용)포트 번호80번 사용443번 사용URL 형식http://test.comhttps://test.com데이터 전송 방식평문(Plain Text) 전송암호화된 데이터 전송중간자 공격 (Man-in-the-Middle, MITM)공격 가능안전SEO (검색 최적화)우선순위 낮음유리함 (구글이 HTTPS 사이트 선호)왜 HTTPS 가 필요할까 ?1. 데이터 암호화 (Encryption)HTTP : 데이터가 평문으로 전송되기 때문에, 해커가 쉽게 가로챌 수 있음HTTPS : SSL/TLS를 사용해 ..

네트워크/기본 2025.03.15

[네트워크] HTTP 요청 메서드 PUT vs PATCH

한줄 정리PUT -> 전체 업데이트 -> "새로운 걸로 덮어씌운다"PATCH -> 부분 업데이트 -> "일부 필드만 고친다"PUT특징전체 리소스를 수정 (덮어쓰기)요청 데이터 : 전체 데이터를 포함멱등성 보장 -> 같은 요청 여러 번 보낼 경우 결과 동일사용 예시회원 정보 수정 (전체 데이터 업데이트) PUT /users/1 + {전체 유저 정보}코드회원 정보를 수정할 때 전체 데이터를 전송해야 함기존 데이터가 통째로 바뀌기 때문에 없으면 null 처리됨PUT /users/1Content-Type: application/json{ "name": "Dengju", "email": "dengju@test.com", "phone": "010-1234-5678"}PATCH특징일부 필드만 수정요청 데이터 :..

네트워크/기본 2025.03.15

[네트워크] HTTP 요청 메서드 GET vs POST

한줄 정리GET -> "읽기(Read)" 요청, URL에 데이터 포함POST -> "쓰기(Create/Update" 요청, Body에 데이터 포함GET (조회용)특징데이터를 가져올 때 사용 (조회)요청 데이터는 쿼리 스트링(URL 파라미터)로 전달됨 (?key=value)브라우저에서 캐싱 가능길이 제한 있음 (브라우저마다 다르지만 대략 2000~8000자)멱등성 보장 -> 같은 요청을 여러 번 보내도 결과가 같음사용 예시게시글 목록 조회 : GET /posts특정 게시글 조회 : GET /posts/1검색 요청 : GET /search?q=javaPOST (데이터 변경)특징데이터를 생성하거나 변경할 때 사용요청 데이터는 Body에 포함되어 전송됨 (JSON, XML, FormData 등)브라우저 캐싱 X..

네트워크/기본 2025.03.15

[네트워크] HTTP 상태 코드 정리

웹 개발하고 테스트하다보면 자주 만나는 HTTP 상태코드에 대해서 알아보자2xx (성공)200 OK -> 요청이 성공적으로 처리됨 (일반적인 응답)201 Created -> 요청이 성공적으로 처리되고 새로운 리소스가 생성됨 (POST 요청에서 자주 사용)204 No Content -> 요청이 성공했지만 반환할 데이터가 없음 (DELETE 요청 후 자주 사용)4xx (클라이언트 오류)400 Bad Request -> 요청이 잘못됨 (잘못된 파라미터, 형식 오류 등)401 Unauthorized -> 인증이 필요함 (로그인 필요, 토큰 없음 등)403 Forbidden -> 요청은 이해했지만, 권한이 없어 접근 불가404 Not Found -> 요청한 리소스를 찾을 수 없음 (URL 오타 등)5xx (서버 ..

네트워크/기본 2025.03.15