728x90
쿠키클라이언트에 저장되는 작은 데이터 조각 1. 서버가 Set-Cookie 헤더를 통해 클라이언트에게 전달2. 클라이언트는 쿠키 저장소에 해당 쿠키를 저장한 후, 요청마다 자동으로 포함하여 서버로 전달 사용처- 사용자 로그인 세션 관리- 사용자 설정 저장- 광고 정보 트래킹 특징- 네트워크 트래픽 추가 유발- 최소한의 정보만 사용 (세션 id, 인증 토큰)- 보안에 민감한 데이터는 저장하면 안 됨 > 참고 - 민감한 데이터는 세션 저장소 또는 토큰(JWT 등)을 사용한다.종류- `세션 쿠키` :생명주기 설정 없고 브라우저 종료 시 쿠키 삭제- `영속 쿠키` : 생명주기 설정까지 유지되고 쿠키 삭제 생명주기 설정- `max-age` : 0 이나 음수를 지정하면 쿠키 삭제- `expires` : 만료일이 되..
HTTP 헤더표현 헤더- `Content-Type` : 표현 데이터의 형식- `Content-Encoding` : 표현 데이터의 압축 방식- `Content-Language` : 표현 데이터의 자연 언어- `Content-Length` : 표현 데이터의 길이 (byte 단위) 표현 헤더는 `요청`/`응답`에 둘 다 사용 > 참고 Transfer-Encoding(전송 코딩)을 사용하면 Content-Length 를 사용하면 안 된다. 협상 헤더(콘텐츠 네고시에이션)클라이언트가 선호하는 표현 요청 - `Accept` : 클라이언트가 선호하는 미디어 타입 전달- `Accept-Charset` : 클라이언트가 선호하는 문자 인코딩- `Accept-Encoding` : 클라이언트가 선호하는 압축 인코딩- `Ac..
상태 코드클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 - `1xx (Informational)` : 요청이 수신되어 처리 중- `2xx (Successful)` : 요청 정상 처리- `3xx (Redirection)` : 요청을 완료하려면 추가 행동이 필요- `4xx (Client Error)` : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청 수행 불가- `5xx (Server Error)` : 서버 오류, 서버가 정상 요청 처리 불가 2xx (Successful)- 200 OK : 요청 성공- 201 Created : 요청 성공해서 새로운 리소스 생성- 202 Accepted : 요청 접수되었으나 처리가 완료되지 않음- 204 No Content : 서버가 요청을 성공적으로 수행했..
클라이언트에서 서버로 데이터 전송 1. `쿼리 파라미터`- GET 요청에서 주로 사용- 검색, 필터링, 정렬과 같은 조회용 데이터를 서버에 보낼 때 적합- URL 길이 제한으로 대량의 데이터 전송하기 어려움- 보안상 데이터 노출 위험2. `메시지 바디`- POST / PUT / PATCH / DELETE 요청에서 사용- 리소스 생성, 수정, 삭제 등에 사용- API 요청에서 JSON 형식을 사용하는 경우가 많음- 대량의 데이터를 효율적으로 전송할 수 있으며, 보안성도 높음 상황별 데이터 전송 방식1. `정적 데이터 조회` : 이미지, 정적 문서 단순 조회 > `GET` (쿼리 파라미터 X)GET /static/star.jpg HTTP/1.1 2. `동적 데이터 조회` : 검색, 필터링, 정렬 시 사..
HTTP 란 ? - HyperText Transfer Protocol - `HTML`, `TEXT`, `IMAGE`, `음성`, `영상`, `파일`, `JSON`, `XML` 등을 HTTP 메시지로 전송: 거의 모든 형태의 데이터 전송 가능하다.: 서버 간의 데이터 주고받을 때도 사용한다. HTTP 역사HTTP/1.1 : 가장 많이 사용하는 버전 (RFC 9110 ~ 9112 개정 버전)(HTTP/2, HTTP/3 은 성능 개선에 초점) 특징- 클라이언트 서버 구조로 동작- 무상태 프로토콜 지향, 비연결성- HTTP 메시지 구조로 통신- 단순함, 확장 가능 클라이언트 서버 구조- Request Response 구조- 클라이언트와 서버가 분리 1. 클라이언트는 서버에 요청을 보내고, 응답을 대기2. 서버가..
Tokenizer, Lexer, Parser컴파일러 실행 순서------ 전단부 ------1. 어휘 분석(Lexical Analysis)2. 구문 분석(Synatax Analysis)3. 중간 코드 생성(Intermediate Code Generation) ------ 후단부 ------4. 코드 최적화(Code Optimization)5. 목적 코드 생성(Target Code Generation ) 어휘 분석 / 구문 분석 단계 과정에서소스 코드 > (Tokenizer) > 토큰 > (Lexer) > 노드 > (Parser) > AST 과정을 거친다. Tokenizer / Lexer / Parser란?Tokenizer와 Lexer는 함께 어휘 분석(Lexical Analysis)을 수행하는 역할을 한..
컴파일러컴파일러란?`컴파일러` : 프로그래밍 언어로 작성된 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 소프트웨어 도구이다.`컴파일` : 고수준 언어 > (컴파일러) > 저수준 언어 따라서, 컴파일하여 실행 가능한 `바이너리 파일`을 생성하여 컴퓨터에서 직접 실행할 수 있고,최적화된 코드를 생성하여 실행 속도를 향상할 수 있다. 컴파일러 구조컴파일러는 입력받은 소스 프로그램을 후단부가 이해할 수 있는 코드로 번역하는 `전단부`,해당 코드를 입력받아 동작시킬 기계에서 적합한 코드로 번역하는 `후단부`로 구분할 수 있다. 전단부는 언어에 의존적이고, 후단부는 기계에 의존적이기 때문에,전단부는 후단부가 이해할 수 있는 별도의 코드인 `중간 코드`를 생성한다. 컴파일러는 이러한 단계로 실행된다.---..
TCP 연결 해제TCP 연결 해제(4 way handshake) 1.FIN: 클라이언트 연결 해제 요청 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 서버에 보낸다. 그리고 클라이언트는 FIN_WAIT_1의 상태로 들어가 서버의 응답을 기다린다. 2.ACK: 클라이언트 연결 해제 요청 확인 서버는 클라이언트에게 ACK를 보내 해제 요청 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태에 들어간다. 클라이언트가 서버의 ACK 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다. 3.FIN: 서버 연결 해제 요청 서버는 2에서 ACK 세그먼트를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보낸다. 서버로부터 FIN 세그먼트를 받은 클라이언트는 TIME_W..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.