Skip to content

Instantly share code, notes, and snippets.

@hrmsk66
Last active August 28, 2022 06:13
Show Gist options
  • Save hrmsk66/38281257b5e8ab05d01849ba5c6c5402 to your computer and use it in GitHub Desktop.
Save hrmsk66/38281257b5e8ab05d01849ba5c6c5402 to your computer and use it in GitHub Desktop.
Restarting with ImageOpto

*点線はオリジナル画像のリクエスト/レスポンス

sequenceDiagram
    autonumber
    participant Client
    participant Edge/Deliver
    participant Edge/Fetch
    participant Shield/Deliver
    participant Shield/Fetch
    participant ImageOpto
    participant Origin    
    Client->>Edge/Deliver: Request /foo?bar=xxx
    Note over Edge/Deliver: Strip QS    
    Edge/Deliver->>Edge/Fetch: Request /foo<br>(empty Io-Params)
    Note over Edge/Fetch: Restore QS
    Edge/Fetch->>Shield/Deliver: Request /foo?bar=xxx
    Note over Shield/Deliver: Strip QS
    Shield/Deliver->>Shield/Fetch: Request /foo<br>(empty Io-Params)
    Shield/Fetch->>ImageOpto: Request /foo<br>(empty Io-Params)
    ImageOpto-->>Shield/Fetch: Request /foo
    Shield/Fetch-->>Origin: Request /foo
    Origin-->>Shield/Fetch: Response
    Shield/Fetch-->>ImageOpto: Response
    ImageOpto->>Shield/Fetch: Response (Untransformed)
    Shield/Fetch->>Shield/Deliver: Response (Untransformed)
    Shield/Deliver->>Edge/Fetch: Response (Untransformed)
    Edge/Fetch->>Edge/Deliver: Response (Untransformed)
    
    Note over Edge/Deliver: Build QS for ImageOpto (width=x)
    Note over Edge/Deliver: Restart
    Note over Edge/Deliver: Strip QS    
    Edge/Deliver->>Edge/Fetch: Request /foo<br>(with Io-Params)
    Note over Edge/Fetch: Restore QS
    Edge/Fetch->>Shield/Deliver: Request /foo?width=x
    Note over Shield/Deliver: Strip QS
    Shield/Deliver->>Shield/Fetch: Request /foo<br>(with Io-Params)
    Shield/Fetch->>ImageOpto: Request /foo<br>(with Io-Params)
    ImageOpto-->>Shield/Fetch: Request /foo
    Shield/Fetch-->>Shield/Fetch: HIT
    Shield/Fetch-->>ImageOpto: Response
    Note over ImageOpto: Transform image
    ImageOpto->>Shield/Fetch: Response (Transformed)
    Shield/Fetch->>Shield/Deliver: Response (Transformed)
    Shield/Deliver->>Edge/Fetch: Response (Transformed)
    Edge/Fetch->>Edge/Deliver: Response (Transformed)
    Edge/Deliver->>Client: Response (Transformed)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment