[우아한테크코스] 6월 1일 TIL
[Spring] accessToken의 범위
[network] 2장 http
- http는 서버와 클라이언트 간 통신을 한다.
- request와 response는 상호 교환된다.
- request: 메서드, uri, 프로토콜 버전, 옵션 리퀘스트 헤더필드, 엔티티
- response: 프로토콜 버전, 상태 코드, 옵션 리스펀드 헤더필드, 바디
- http는 상태를 유지하지 않는 프로토콜
-
리퀘스트 uri로 리소스를 식별
- GET: 리소스 획득
- POST: 엔티티 전송
- PUT: 파일 전송
- HEAD: 메시지 헤더 취득
- DELETE: 파일 삭제
- OPTIONS: 제공하고 있는 메서드의 문의
- TRACE: 경로조사
리퀘스트 보낸 곳에 어떤 리퀘스트가 가공되어 있는지 조사(크로스 사이트 트레이싱 보안 문제) -
CONNECT: 프록시에 터널링 요구
서버에서 클라이언트 직접 연결되면 http, tls 이용한 연결되면 https, https를 위한 프록시를 통하는 것을 CONNECT 메서드를 통함 -
지속 연결로 접속량 절약
하나 보낼때마다 tcp 연결과 종료를 하여 통신량 증가
지속 연결이란 어느 한쪽이 명시적으로 연결을 종료하지 않는 이상 tcp 연결을 유지하는 것
tcp 연결과 종료를 반복하지 않아 서버에 대한 부하 경감 -
파이프라인화
리퀘스트 송신 후에 리스폰스까지 기다리다가 리퀘스트를 발행하던 것을 리스펀스를 기다리지 않고 다음 리퀘스트를 보낼 수 있도록 한다. - 쿠키를 통한 상태 관리
stateless 프로토콜은 cpu나 메모리 같은 리소스의 소비 억제
상태를 기록하기 위한 쿠키가 만들어짐
[network] 3장 http message
- 구성: 메시지 헤더 + 개행 문자(CR+LF) + 메시지 바디
- 메시지: 리퀘스트 라인 + 상태 라인(리스펀스 결과) + 헤더 필드
- 메세지 vs entity
- message: http의 기본 단위, 옥텟 시쿼스 구성, 통신을 통해 전송
- entity: request와 response의 payload로 전송되는 정보(헤더 필드 + 엔티티 바디)
- 데이터 전송 시 인코딩을 실시해 효율 상승
압축: Content Codings - gzip(GNS zip), compress(UNIX 표준 압축), deflate(zlib), identity(x)
분할: Chunked transfer coding(청크로 나누어 16진수로 단락을 표시하고 바디의 끝에 개행문자 0 기록)
여러 데이터 전송: Multipurpose Internet Mail Extensions - 다양한 방법 규정
일부만 수신: range request(전송받다 끊기면 다시 받지 않도록 범위를 지정해 받는 것)
최적의 콘텐츠 반환: Content Negotiation(Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Language)를 통해 클라이언트에 더욱 적합한 리소스를 판단해 서버 구동형, 에이전트 구동형, 트랜스페어런트(혼합)으로 처리