Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Edge-Control Headers #1

Open
4 tasks
dshafik opened this issue Dec 13, 2016 · 1 comment
Open
4 tasks

Add Edge-Control Headers #1

dshafik opened this issue Dec 13, 2016 · 1 comment

Comments

@dshafik
Copy link
Contributor

dshafik commented Dec 13, 2016

Goal

Send Edge-Control Headers to better integrate with the Akamai platform. Use reasonable defaults.

Discussion

Defaults

  • Edge-Control: dca=esi — instruct Akamai to parse and execute ESI
  • Edge-Control: bypass-cache for admin-level accounts
  • Edge-Control: max-age=365d — cache on the Edge (not the client) for a year (for some values of a year!) and Fast Purge it.

This would be sent as: Edge-Control: dca=esi,max-age=365d or Edge-Control: dc=esi,max-age=365d,bypass-cache for admins.

Admin UI Controls

  • Edge Max Age: [ Text ] with quick pick links for 24hrs, 30 days, 1 year, and no-store (with a note)
  • Downstream TTL: same as above
  • Parse ESI? [ Checkbox ]
  • Logging:
    • Accept Language: [ Checkbox ]
    • Cookies: [ Checkbox ]
    • Host Header: [ Checkbox ]
    • Referer: [ Checkbox ]
    • User-Agent: [ Checkbox ]

Negations

Many of these options (particularly logging and downstream TTL) can be set in the property config, and therefore to force the behavior as configured, we would want to send a negated header e.g. Edge-Control: !no-store. This could however be completely unnecessary overhead. Input on this is appreciated.

@colinbendell
Copy link

candidly, none of these options should be exposed to the wp admin. If anything these are advanced features. We should be doing the right thing automatically.

Specifically, we should be setting Edge-Control: max-age=365d, downstream-ttl=0s for all base page requests and downstream-ttl=5m for all static content.

This should then be coupled with fast purge to invalidate (not delete) after every comment or edit/publish of content. The purge should initiate with the canonical url and the colloquial url.

Bottom line - the user doesn't know what any of those options are or how to use them best.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants