[우아한테크코스] 6월 1일 TIL

1 minute read

[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

  1. 구성: 메시지 헤더 + 개행 문자(CR+LF) + 메시지 바디
    • 메시지: 리퀘스트 라인 + 상태 라인(리스펀스 결과) + 헤더 필드
  2. 메세지 vs entity
    • message: http의 기본 단위, 옥텟 시쿼스 구성, 통신을 통해 전송
    • entity: request와 response의 payload로 전송되는 정보(헤더 필드 + 엔티티 바디)
  3. 데이터 전송 시 인코딩을 실시해 효율 상승
    압축: 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)를 통해 클라이언트에 더욱 적합한 리소스를 판단해 서버 구동형, 에이전트 구동형, 트랜스페어런트(혼합)으로 처리