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

hw5 #94

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

hw5 #94

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ end
gem "actionpack-action_caching", "~> 1.2"
gem "active_record_union", "~> 1.3"
gem "acts-as-taggable-on", "~> 5.0"
gem "acts_as_follower", github: "thepracticaldev/acts_as_follower", branch: "master"
gem "acts_as_follower", github: "forem/acts_as_follower", branch: "master"
gem "addressable", "~> 2.5", ">= 2.5.2"
gem "administrate", "~> 0.11"
gem "ahoy_email", "~> 0.5"
Expand Down Expand Up @@ -122,7 +122,7 @@ group :development, :test do
gem "derailed", "~> 0.1"
gem "erb_lint", "~> 0.0", require: false
gem "faker", git: "https://github.com/stympy/faker.git", branch: "master"
gem "fix-db-schema-conflicts", github: "thepracticaldev/fix-db-schema-conflicts", branch: "master"
gem "fix-db-schema-conflicts", github: "jakeonrails/fix-db-schema-conflicts", branch: "master"
gem "memory_profiler", "~> 0.9"
gem "parallel_tests", "~> 2.27"
gem "pry-byebug", "~> 3.7"
Expand Down
24 changes: 12 additions & 12 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
GIT
remote: https://github.com/stympy/faker.git
revision: 9910aa58d92c018abab25d491191576fcc1a7707
remote: https://github.com/forem/acts_as_follower.git
revision: 06393d3693a1a3d4b390aec4976c8b8f3a81cf01
branch: master
specs:
faker (1.9.1)
i18n (>= 0.7)
acts_as_follower (0.2.1)
activerecord (>= 4.0)

GIT
remote: https://github.com/thepracticaldev/acts_as_follower.git
revision: 288690cd99bc470eaee493fce5bfa9fe23157692
remote: https://github.com/jakeonrails/fix-db-schema-conflicts.git
revision: 1e94f518503f1d1addd6ed052454efcbec0b3c6a
branch: master
specs:
acts_as_follower (0.2.1)
activerecord (>= 4.0)
fix-db-schema-conflicts (3.1.0)
rubocop (>= 0.38.0)

GIT
remote: https://github.com/thepracticaldev/fix-db-schema-conflicts.git
revision: 4172392392e1a8d907f7ab673cb5ddd9a4a31940
remote: https://github.com/stympy/faker.git
revision: 9910aa58d92c018abab25d491191576fcc1a7707
branch: master
specs:
fix-db-schema-conflicts (3.0.2)
rubocop (>= 0.38.0)
faker (1.9.1)
i18n (>= 0.7)

GEM
remote: https://rubygems.org/
Expand Down
9 changes: 9 additions & 0 deletions app/controllers/stories_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ def index
return handle_user_or_organization_or_podcast_index if params[:username]
return handle_tag_index if params[:tag]

push_headers = [
"<#{view_context.asset_path('bell.svg')}>; rel=preload; as=image",
"<#{view_context.asset_path('menu.svg')}>; rel=preload; as=image",
"<#{view_context.asset_path('connect.svg')}>; rel=preload; as=image",
"<#{view_context.asset_path('stack.svg')}>; rel=preload; as=image",
"<#{view_context.asset_path('lightning.svg')}>; rel=preload; as=image",
]
response.headers["Link"] = push_headers.join(", ")

handle_base_index
end

Expand Down
6 changes: 3 additions & 3 deletions app/views/layouts/_top_bar.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@
</div>
<a href="/new" id="write-link" class="cta nav-link write">WRITE A POST</a>
<a href="/connect" id="connect-link" class="nav-link connect-icon" aria-label="Connect">
<%= inline_svg("connect.svg", size: "100% * 100%") %>
<%= image_tag("connect.svg", size: "100% * 100%") %>
<div class="connect-number" id="connect-number"></div>
</a>
<a href="/notifications" id="notifications-link" class="nav-link notifications-icon" aria-label="Notifications">
<%= inline_svg("bell.svg", size: "100% * 100%") %>
<%= image_tag("bell.svg", size: "100% * 100%") %>
<div class="notifications-number" id="notifications-number"></div>
</a>
<div class="navbar-menu-wrapper" id="navbar-menu-wrapper">
<button class="navigation-butt" id="navigation-butt" aria-label="Navigation">
<% if user_signed_in? %>
<div class="nav-profile-image-wrapper"><img alt="" class="nav-profile-image" id="nav-profile-image" /></div>
<% else %>
<%= inline_svg("menu.svg", class: "bars", size: "20% * 20%") %>
<%= image_tag("menu.svg", class: "bars", size: "20% * 20%") %>
<% end %>
</button>
<div class="menubg" id="menubg"></div>
Expand Down
33 changes: 33 additions & 0 deletions case-study.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# HW5

### Шаг 1. Настроить сертификат для локального HTTPS

Создал сертификат для `localhost`.

### Шаг 2. Настраиваем NGinx как reverse-proxy

Установил `NGinx`, добавил ssl в конфиг.

### Шаг 3. Настроить HTTP/2 и server-push

Добавил `HTTP/2` + `push_preload` в конфиг.

### Шаг 4. Поэксперементировать с HTTP/2 server-push

Видно, что заинлайненные картинки появляются сразу вместе с первым контентом - шапкой, спустя небольшое заметное время на медленном соединении. Остальные картинки догружаются постепенно уже после.

Настроил `server-push`, теперь в dev tools видно, что инициатор загрузки картинок - `Push/Other`.

### Шаг 5. Измерение эффекта сделанных изменений

**Без `server-push`:**

![](no-server-push.png)

**С `server-push`:**

![](server-push.png)

Первая отрисовка при `server-push` появляется почти на секунду (~27%) быстрее, что в принципе крутой результат, учитывая небольшие затраты времени на оптимизацию.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍👍


Единственное - сначала напряг показатель Total Blocking Time: 1.988s с сервер пуш и 549ms без сервер пуш, но пересмотрев еще несколько итераций оказалось, что показатель сильно плавает и нельзя однозначно сказать, что он ухудшился при использовании `server-push`.
28 changes: 28 additions & 0 deletions localhost+1-key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в данном случае конечно не страшно, но лучше вообще не комитить такое даже в тестовых проектах

MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDTO2qbZoJ2xi+T
dIWN3vvRmETchI7zGP7OWqJPLJb0cuNdr62CKo493r5kPMQxTwr7CUpalSlMIKGz
J71Nml1yV5mDJEl6O+YMrSREX/oEX1UskkolWAHe4q2fRTp4dljsUKuMywkKRr6P
428PgffCRYNSjrOYZ3sNGswJl4YeOJP1JcrC6u0wUZVF82uzWosawNIs4/aLl+zS
cQ05P0vnHeDxzBgPXgEecMsonR8ASYSCGQufWd388lJbbKXpsPRoikmKbXEfi3oQ
DnHx3/YzHmmSuyLhRc+3milQK9gCFwgPJn40cSK6iKaLQYc1QFAR4NnvekYffcSN
EBkatss7AgMBAAECggEBAIDtVh9tzRmz05wb1dyHCoqedwFlw16rlfLbrQ/INocT
jKVFMhEt6k3nI6xIzrMN/LTGseRiAKffjvKrwcaY/opo32EFB/gckUiRcX5uWkrK
6VDgJXNvqQyirLh2575Y9eOfRWYVEvp7vZpThhkgCdpA1WvRf9r45klUXs9H9euB
Hxwq1Ddd2fJo0OWq06C+V3TCyXia+jybZwjT//pWOsWln75TrgbVOR2/375cWEAF
KYNm1QRIUQrDsgoE/rqCdAGf0EQkFYvxBUY/6Ujsd0RjMPmr1Wgdm1ims0fYAnAN
Q1pw0ACdYdmhKtlYb6PEUUIHaPKscT3UyJiWExvyAGECgYEA7JHY+FN2YO3RfsYm
TFMyvqQdx/RTSABIC3VthK9B2LRZHY6vD0+OIHW32oRLizPrgTK19aMXQDjvIq/s
NTbH4CZZNxAef00k48HlbkpuayHpoAL6nhzTzaXuJsN1PE8cfZSQqsHTRnyoYA9Z
WR89vdZcWQEU9igIyF+YyV588XECgYEA5JTQ5+Yw6ZFZD0iULMXx8vvAgnv3JO5b
t0bJdL+h1ekFTZkyHOy31W1yeYA+ALIWPD1OJ92lzIW7GydjvRJCsVrdPcrMAyVl
iUK94KXj1JIAAw7+r6jPjTTQKcBozBGYh/wcTY9yCaK8yP/C0wIwpL0VoGYR/KvE
ElGVHG8bcWsCgYA5a3ERXRi3kCGwNqInFm6TrTv5Q4lPSZozBc6OTQebdLLIpNBC
1Bl4MXptlHzNjc2Ur11RAMPs96S7c53OkLxU4Jn47nWoim3wxihM683/PNz61J5F
8FNMcADs8bYr7DvLE1tFxwPj8O/hWPhj1FxlDnmdtNCEqtTu5Z0tCz0iUQKBgQDc
+IwXkm04bj1VTAmKWvUxu3P38FUUC6T4QWMhDNwrSW/J+035rlFs7rgagwHtdDuQ
kodKfLf6RlGBx4tgzRVSFJAKW1DrvawxjCa41EWySk3epxFIyP2T+Tk/E3V7yYrV
8r99ry1D6WFtQeqaR+S0bOJKREIhK/+I4fsvGK3D7wKBgQDaZ8C1ZYAwDOA5by2T
I3RpC92GJPkqu7codkyk57G10ZgvsPsnCRW4+9shvXbuJ/aicAZwEKHCrdTWXSo8
0rJGwOObZ5rgCwB12wOU+eKmQ98pk9EfJiZu+4Nr9/y8wGa1FDP88SYYJilTphn1
B8NKht3KawXLLq04kjqCRvrWDw==
-----END PRIVATE KEY-----
28 changes: 28 additions & 0 deletions localhost+1.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIEyTCCAzGgAwIBAgIRANp/a7ZjQA5xtBc4VEy4g3cwDQYJKoZIhvcNAQELBQAw
gdcxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTFWMFQGA1UECwxNZS5z
dGFzaGtvdnlhbkBNYWNCb29rLVByby1FdmdlbmlqLmxvY2FsICjQldCy0LPQtdC9
0LjQuSDQodGC0LDRiNC60L7QstGM0Y/QvSkxXTBbBgNVBAMMVG1rY2VydCBlLnN0
YXNoa292eWFuQE1hY0Jvb2stUHJvLUV2Z2VuaWoubG9jYWwgKNCV0LLQs9C10L3Q
uNC5INCh0YLQsNGI0LrQvtCy0YzRj9C9KTAeFw0yMjA4MDgxMzU2MDRaFw0yNDEx
MDgxMzU2MDRaMIGBMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlm
aWNhdGUxVjBUBgNVBAsMTWUuc3Rhc2hrb3Z5YW5ATWFjQm9vay1Qcm8tRXZnZW5p
ai5sb2NhbCAo0JXQstCz0LXQvdC40Lkg0KHRgtCw0YjQutC+0LLRjNGP0L0pMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ztqm2aCdsYvk3SFjd770ZhE
3ISO8xj+zlqiTyyW9HLjXa+tgiqOPd6+ZDzEMU8K+wlKWpUpTCChsye9TZpdcleZ
gyRJejvmDK0kRF/6BF9VLJJKJVgB3uKtn0U6eHZY7FCrjMsJCka+j+NvD4H3wkWD
Uo6zmGd7DRrMCZeGHjiT9SXKwurtMFGVRfNrs1qLGsDSLOP2i5fs0nENOT9L5x3g
8cwYD14BHnDLKJ0fAEmEghkLn1nd/PJSW2yl6bD0aIpJim1xH4t6EA5x8d/2Mx5p
krsi4UXPt5opUCvYAhcIDyZ+NHEiuoimi0GHNUBQEeDZ73pGH33EjRAZGrbLOwID
AQABo2QwYjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYD
VR0jBBgwFoAU3/d+/b+Ca71exFYs3UkkexSkQgowGgYDVR0RBBMwEYIJbG9jYWxo
b3N0hwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBgQCLvPYWGkV4kqUozgLqxzsx09i3
30GxjFYv9zR9A7SZ6Y2+OHQh6wWAVfuOlBAG46p9dvDRP2PyqdIFTABtNDRAhIRa
k7TydM+Zpt4RQgroqB7wRhhlvEfR160Q/xLwGedrRbiej5qychpGVUFQtJR2jBOX
bgkxM5eS88p+3EEGVuIWjsKXJqjIxGlf8ylDFx/+JU2zPGmhGeApKOO2FwLU2TL3
RRAVBNU7E3Ce1kwD1ZcXWLGVrYO48us8ylZOs8mpm6UX1XK+oruBbRjt80uKqdyS
iho3D0QRwCjyzVg2JEgXo171ACWtgimfxrcULdhDaj29YBzDeiHwn8z6zmTP0g3q
fJzH+6pbbFeOfLshaQKguIGL6AldkfCE784XhezFPketsB4krSiiUUBJt5lQplB+
VAcBYyOSgeN8RdLpgKScSKhskMYA1KokoXibu7kMuuTc95Nq3SU6iYhZvaaDc463
eYaWdk8PMtSScEviTSFgBfbJQv/re7jUrqXWWmg=
-----END CERTIFICATE-----
Binary file added no-server-push.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added server-push.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading