aboutsummaryrefslogtreecommitdiff
path: root/content/h2push/server
diff options
context:
space:
mode:
authorJaana Burcu Dogan <jbd@google.com>2017-03-21 14:43:56 -0700
committerJaana Burcu Dogan <jbd@google.com>2017-03-24 17:11:04 +0000
commitfce1c816b5931cda200d5de72fcc989c937e202f (patch)
tree7d1e678358d5ee047ddd1e44a21e68bf9e01b59c /content/h2push/server
parentf415e5b29c5b4d211782c6c6851b62d2070f2fdc (diff)
content/h2push: initial commit of the example server
Change-Id: I500f049e5855d008fd8185603033f72a3fd39b4f Reviewed-on: https://go-review.googlesource.com/38428 Reviewed-by: Tom Bergan <tombergan@google.com> Run-TryBot: Tom Bergan <tombergan@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'content/h2push/server')
5 files changed, 100 insertions, 0 deletions
diff --git a/content/h2push/server/cert.pem b/content/h2push/server/cert.pem
new file mode 100644
index 0000000..a5e358b
--- /dev/null
+++ b/content/h2push/server/cert.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+jCCAeKgAwIBAgIRAObvuqxwZslFrWR3prSG3dIwDQYJKoZIhvcNAQELBQAw
+EjEQMA4GA1UEChMHQWNtZSBDbzAeFw0xNzAzMjEyMTIyMTlaFw0xODAzMjEyMTIy
+MTlaMBIxEDAOBgNVBAoTB0FjbWUgQ28wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQCo/c12ijJ5W3P+6A7P0kY5uzgx0Dxf33PZ7CIUijtH/8AoQoaC7cfn
+I/ZaFgxJdZsGoC2+nlkBBOL0kPPc5FB6B93KEqhl2GLlKsojy4aB6osEBxnrHvX7
+2M8ainZB1SVtkt7CmstWRyD8b0dwEKR84ihN13ia7pgAute64ZcgsrfMptr1OiMh
+8wJQQQcwSU1V+m9a4M+yWFGiGG6bSRoKUk/LPn5ET/q5DJlpeh+GxG70rIXvUr8O
+9yGT5y10dR77wMrdhpmCWpA5+RUQbwA549lI7r+lEipoO0zASOt9X4OKfUTCH/Ss
+wSOpiFEuLFHn+ISXZXB1l0GUnkhLOBE3AgMBAAGjSzBJMA4GA1UdDwEB/wQEAwIF
+oDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuC
+CWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAejwoqgZ7C0aIfn/iI6re/Kkl
+VJWROa/ztbEVEK6Pq9OGfWWNx57a/Ya2xX2C/l+WWo7vBvq7yLhMZ2tR+QeRNvHA
+dlyfdv7lg5oQ1a+ecl5mIoeYS5cxBTohWzf8QLfp5J/AKOOZn+HQlI3b1gkbiWIP
+LSo+e4jvRyDDj/caIZqc6a3SNKmdZxCGNps/VpQR+3gRPDPo6s7Ieoz230UcvJMc
+N4BdI3VYZiBAWxi657WeUZrmRhKIc6h4vO4H1pSMD+uGfU9/2nm+udXpNNCpV72q
+pCjSOWRzvgOmvWTyRjRyDvViG7jNQdzBPbnRaK1XRKN3Yij16+k8v8UD0xsrdg==
+-----END CERTIFICATE-----
diff --git a/content/h2push/server/key.pem b/content/h2push/server/key.pem
new file mode 100644
index 0000000..388407f
--- /dev/null
+++ b/content/h2push/server/key.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAqP3NdooyeVtz/ugOz9JGObs4MdA8X99z2ewiFIo7R//AKEKG
+gu3H5yP2WhYMSXWbBqAtvp5ZAQTi9JDz3ORQegfdyhKoZdhi5SrKI8uGgeqLBAcZ
+6x71+9jPGop2QdUlbZLewprLVkcg/G9HcBCkfOIoTdd4mu6YALrXuuGXILK3zKba
+9TojIfMCUEEHMElNVfpvWuDPslhRohhum0kaClJPyz5+RE/6uQyZaXofhsRu9KyF
+71K/Dvchk+ctdHUe+8DK3YaZglqQOfkVEG8AOePZSO6/pRIqaDtMwEjrfV+Din1E
+wh/0rMEjqYhRLixR5/iEl2VwdZdBlJ5ISzgRNwIDAQABAoIBAC3/v+CnZ2vPL/jP
+09BP7VujkX1FsFlsao2EEBbFNbO4cubCjPiwnrxU9qa436lTQNqB2VHMqm9zlA98
+MVUMNLey0nVBtOLcDrdQeWta6AcO/74d7LkqWUyvTFhuHhh3W1PDKa2REw4uGFV+
+ONTRQuTXbp8ZqrOJhIiWU0iERW3ZppXxtSke+fpVgz2Jtrmin9Yx6ptofaRUyESY
+LycpH8Ex5T01Wmnvas44iklBT8zLeSyL+EgwWjgBlmVTON10rDlZCivSgnTBo7o0
+isuiLiHQPgol/XGvnMHlOM9L8+lqqswKBz0vpuyQ6qUApPe5K8TZ4wmywHGv3utq
+GC1m+bECgYEA1bAox9w/+r8J9DxRqvjg6SG5nvaTMP4Ogb2aUOxFUebLlVuTsLyF
+w/YNIvtgExradv/I35qJA8YnvYGE77jQoajPJ1wNcx9mrEujPEIVeKyn0V/o98dV
+6S7Z9NT4T2ElyhZWA/Uef89TomPWnZoleoewwexcfrg1C6a+8B1jMM8CgYEAynP4
+KvcM6ZzLJ4ynGe0Uw4mg2dgcaTyOK23zSsSqc12FoaMMUgof0Z+/d1KgTCL3TPvG
+hUA261bgYFAuzlHXo71+QKkzQjVftrNACLStSGjDqQwb/Kb5BeuWB1VPyfDSLpKx
+obxjp+vS3C8wM8fx9EN0ds1zXbxnPS+9zHRkIxkCgYAOUt2Y8AmV3EJljbmHtWEW
+H32ayzp4mT8NsVDrxbqrz8WrwFS5DxoEVbTxuFnrTeyA94pWerxedWTqjgkELKZH
+f9JK+B+qrNssB3Hssx1PVnt1THGIUmNO2yYfBDuUzpVC45Zmc4LU3Gflxb14GQIU
+IY5WoWpd0Ck2G7pGzCF+/wKBgFDSOSlV1QbR/Fw+j1sPRXHGWLt+xeDRNuRpkW2w
+02cY18cuYzXBKvCxeGs3Rhz+/ID0Jk191C7hUNPCTt042QBaHrPLmFX/HsW+C3su
+PdshT7MFzYpwUgumAA/PY/n3NME4+MbbgWFBCL2z7OdPE+1ynGTtIfgyxXgsvfWI
+JY3JAoGAKh11P1A1PRH6TNtWn78JkoVRCPE0mRjd01tJW5BTolK5a0yCVIOQcSBm
+w59msWhfkO+HB/v97x4/AFrm84saHtVYOksv7qZBgqDT43a3b9IjBl5deMCxB9He
+1W3cLtpmouXlvs6p8wTaIZI7Wr9H9Xk2WrpJQQOZ1loZbOfo6Pg=
+-----END RSA PRIVATE KEY-----
diff --git a/content/h2push/server/main.go b/content/h2push/server/main.go
new file mode 100644
index 0000000..5cc153a
--- /dev/null
+++ b/content/h2push/server/main.go
@@ -0,0 +1,47 @@
+// server is a server with HTTP/2 Server Push support.
+package main
+
+import (
+ "flag"
+ "fmt"
+ "log"
+ "net/http"
+)
+
+var httpAddr = flag.String("http", ":8080", "Listen address")
+
+func main() {
+ flag.Parse()
+ http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
+ http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+ if r.URL.Path != "/" {
+ http.NotFound(w, r)
+ return
+ }
+ pusher, ok := w.(http.Pusher)
+ if ok {
+ // Push is supported. Try pushing rather than
+ // waiting for the browser request these static assets.
+ if err := pusher.Push("/static/app.js", nil); err != nil {
+ log.Printf("Failed to push: %v", err)
+ }
+ if err := pusher.Push("/static/style.css", nil); err != nil {
+ log.Printf("Failed to push: %v", err)
+ }
+ }
+ fmt.Fprintf(w, indexHTML)
+ })
+ log.Fatal(http.ListenAndServeTLS(*httpAddr, "cert.pem", "key.pem", nil))
+}
+
+const indexHTML = `<html>
+<head>
+ <title>Hello World</title>
+ <script src="/static/app.js"></script>
+ <link rel="stylesheet" href="/static/style.css"">
+</head>
+<body>
+Hello, gopher!
+</body>
+</html>
+`
diff --git a/content/h2push/server/static/app.js b/content/h2push/server/static/app.js
new file mode 100644
index 0000000..b6211f2
--- /dev/null
+++ b/content/h2push/server/static/app.js
@@ -0,0 +1 @@
+console.log("Hello!");
diff --git a/content/h2push/server/static/style.css b/content/h2push/server/static/style.css
new file mode 100644
index 0000000..b55e615
--- /dev/null
+++ b/content/h2push/server/static/style.css
@@ -0,0 +1,7 @@
+body {
+ margin: 20px;
+ font-family: Arial, sans-serif;
+ font-size: 16px;
+ background-color: #fff;
+ line-height: 1.3em;
+}