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

cache UI assets #1807

Closed
aybabtme opened this issue Nov 10, 2017 · 3 comments

Comments

@aybabtme
Copy link

commented Nov 10, 2017

Feature Request

What challenge are you facing?

A lot of time is spent, when opening a page on Concourse, pulling down the same assets again and again (say elm.min.js). The assets aren't served from a CDN, so everything ends up being pulled from the application server.

A Modest Proposal

Use Content-MD5 headers to avoid pulling down the same asset if their MD5 checksum hasn't changed (server will respond with HTTP 304 Not Modified).

  • Concourse version: v3.5.0
  • Browser (if applicable): Chrome Version 62.0.3202.89 (Official Build) (64-bit)
@jama22

This comment has been minimized.

Copy link
Member

commented Nov 13, 2017

Sounds like something we can tackle. I'm going to schedule this in our UX backlog. Thanks for the suggestion @aybabtme

@mhuangpivotal

This comment has been minimized.

Copy link
Contributor

commented Nov 15, 2017

According to https://tools.ietf.org/html/rfc7231#page-92,

The Content-MD5 header field has been removed because it was
inconsistently implemented with respect to partial responses.

Unless I'm misunderstanding the problem, currently ATC sets Cache-Control: max-age=31536000 (one year) for all public assets, so the browser should not be pulling down the same assets again and again.

We are going to make some performance tweaks in #1729.

@jtarchie

This comment has been minimized.

Copy link
Contributor

commented Nov 17, 2017

I see the the assets being cached effectively from Chrome. It shows that they are being loaded from memory cache, because of the Cache-Control header.

screen shot 2017-11-17 at 4 16 50 pm

As for the Content-MD5, I believe it has been replaced in favor of E-Tag, right?

@aybabtme, are you able to show where the cache miss is occurring?

vito added a commit that referenced this issue Apr 11, 2018
Submodule src/github.com/aws/aws-sdk-go 637cf7628..57564ea05:
  > Merge pull request #1889 from aws/release
  > Merge pull request #1888 from aws/release
  > Merge pull request #1887 from aws/release
  > adding correct link to v2 (#1886)
  > Merge pull request #1885 from aws/release
  > Merge pull request #1882 from aws/release
  > Merge pull request #1881 from aws/release
  > private/model/api: Fix typo in docs.
  > private/model/api: Add suppression of Eventstream models (#1875)
  > Merge pull request #1876 from aws/release
  > Merge pull request #1873 from aws/release
  > Merge pull request #1872 from aws/release
  > adding sync example (#1871)
  > Merge pull request #1870 from aws/release
  > Merge pull request #1866 from aws/release
  > aws/request: Fix a typo in a comment (#1862)
  > Merge pull request #1864 from aws/release
  > Merge pull request #1860 from aws/release
  > Merge pull request #1858 from aws/release
  > Add #1854 to pending change log
  >  aws/endpoints: Use service metadata for fallback signing name (#1854)
  > Merge pull request #1855 from aws/release
  > service/s3/s3manager: fixing error string and error messages being lost (#1851)
  > Merge pull request #1852 from aws/release
  > Merge pull request #1845 from aws/release
  > aws/endpints: Remove codegen customization for CloudHSMv2 signing name (#1840)
  > service/s3: Disable S3 object ContentMD5 automatic validation (#1843)
  > Merge pull request #1841 from aws/release
  > adding custom signing name for runtime.sagemaker (#1838)
  > Merge pull request #1835 from aws/release
  > Merge pull request #1832 from aws/release
  > Merge pull request #1831 from aws/release
  > service/s3: Add ContentMD5 validation of S3 Objects (#1827)
  > 501, 'NotImplemented', will no longer be retried (#1826)
  > aws/corehandlers: Add support for AWS_EXECUTION_ENV env var (#1820)
  > Merge pull request #1828 from aws/release
  > Merge pull request #1825 from aws/release
  > Merge pull request #1821 from aws/release
  > Create CODE_OF_CONDUCT.md (#1818)
  > service/s3/s3manager: Update GetBucketRegion region hint fallback (#1804)
  > Merge pull request #1817 from aws/release
  > Update travis CI tests to include Go 1.10 (#1805)
  > Update documentation to point at the correct interface (#1813)
  > Merge pull request #1812 from aws/release
  > Merge pull request #1809 from aws/release
  > Merge pull request #1807 from aws/release
  > fixing s_code link (#1806)
  > Merge pull request #1800 from aws/release
  > rework multipart upload so that it reuses the same buffers when uploading. this significantly decreases memory consumption during upload. (#1784)
  > aws/ec2metadata: Add support for AWS_EC2_METADATA_DISABLED env var (#1799)
  > Merge pull request #1798 from aws/release
  > Merge pull request #1796 from aws/release
  > Merge pull request #1795 from aws/release
  > Release v1.13.0 (#1794)
  > fixes 1790 to use context (#1792)
  > private/model/api: bug fix with some examples excluding fields (#1791)
  > Merge pull request #1788 from aws/release
  > Adding custom retryer to AssignPrivateIpAddresses and ModifyNetworkInterfaceAttribute (#1787)
  > Merge pull request #1786 from aws/release
  > Merge pull request #1785 from aws/release
  > aws/request: Fix support for streamed payloads for unsigned body request (#1778)
  > Merge pull request #1783 from aws/release
  > Merge pull request #1782 from aws/release
  > Merge pull request #1781 from aws/release
  > Merge pull request #1780 from aws/release
  > Merge pull request #1779 from aws/release
  > Add pending change log changes. (#1774)
  > private/model/api: removing crosslinks from input/output shapes. (#1765)
  >  aws/session: Fix bug in session.New not supporting AWS_SDK_LOAD_CONFIG (#1770)
  > example/service/ec2/instancesbyRegion: Fix typos in example (#1762)
  > adds validation to ensure there is no duplication of services in models/apis (#1758)
  > Merge pull request #1773 from aws/release
  > Merge pull request #1759 from aws/release
  > aws/request: Fix Pagination handling of empty string NextToken (#1733)
  > aws/endpoints: Workaround CloudHSMv2 signing name not modeled (#1751)
  > v1.12.69 (#1757)
  > models/apis: removing incorrect named folder (#1756)
  > Fix conflict of dirname GuardDuty to guardduty. fix #1753 (#1754)
  > Merge pull request #1752 from aws/release
  > Add #1749 to change log
  > service/s3/s3manager: Fix check for nil OrigErr in Error()(#1749)
  > service/s3: Add Get/Put object presign benchmark tests (#1735)
  > Merge pull request #1747 from aws/release
  > Only set header tag len if set (#1743)
  > Merge pull request #1744 from aws/release
  > Merge pull request #1740 from aws/release
  > Merge pull request #1739 from aws/release
  > Release v1.12.63 (#1738)
  > Merge pull request #1732 from aws/release
  > example: Add Custom Retry strategy example. (#1731)
  > Merge pull request #1730 from aws/release
  > Merge pull request #1728 from aws/release
  > Merge pull request #1725 from aws/release
  > Merge pull request #1724 from aws/release
  > Merge pull request #1723 from aws/release
  > Merge branch 'master' of https://github.com/aws/aws-sdk-go
  > Changed 'on-premise' to 'on-premises'
Submodule src/github.com/concourse/atc 830a18d..ebc24ca:
  > Merge branch 'x6j8x-master'
  > Merge pull request #261 from timrchavez/timrchavez/build_event_times
  > Merge pull request #256 from baptiste-bonnaudet/vault-max-ttl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.