当前位置: 首页 > 面试题库 >

在浏览器中不使用https时,Golang ListenAndServeTLS返回数据

何勇
2023-03-14
问题内容

以下是我的tls后端:

package main

import (
    "fmt"
    "net/http"
)

const (
    PORT       = ":8443"
    PRIV_KEY   = "./private_key"
    PUBLIC_KEY = "./public_key"
)

func rootHander(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Nobody should read this.")
}

func main() {
    http.HandleFunc("/", rootHander)
    err := http.ListenAndServeTLS(PORT, PUBLIC_KEY, PRIV_KEY, nil)
    if err != nil {
        fmt.Printf("main(): %s\n", err)
    }
}

密钥是使用以下两行生成的:

openssl genrsa -out private_key 2048
openssl req -new -x509 -key private_key -out public_key -days 365

当我启动tls服务器并使用浏览器(https://example.com:8443)访问站点时,
忽略浏览器警告 ,我得到了预期的结果:

Nobody should read this.

到目前为止,一切都很酷。

现在,当我将浏览器指向http://example.com:8443(注意使用的是http,
而不是 https)时,我得到了Firfox的以下结果(Chrome浏览器执行的操作相同,但是下载了该站点):

使用http

问题 :为什么会有问号?


问题答案:

如果将输出通过管道传输到od,,curl -k -3 http://localhost:8443 | od -A n -t x1则将获得以下15 03 01 00 02 02 0a由浏览器呈现/处理的html" target="_blank">字节序列。

根据https://code.google.com/p/go/issues/detail?id=2253的说法,TLS是“我不明白您说什么”的TLS。



 类似资料:
  • 问题内容: 我是否可以附加功能作为按钮的单击事件,以使浏览器返回上一页? 问题答案: 在您的输入元素中添加

  • 我将@DataProvider用于Selenium on Java and TestNg项目,特别是用于实现saucelabs所需功能的TestBase类。我担心的是,这段代码返回“NullPointerException”错误,因为数据提供程序值从未被接受。有人能指出我的代码有什么问题吗(使用与示例相同的代码:https://github.com/saucelabs-sample-test-fr

  • 但是,当我使用不带参数的url(时,它工作正常。

  • 问题内容: 在IE7,IE8和Firefox上设置属性并返回不同的值: IE 8: IE 7: 火狐: 为什么存在这种差异? 在不使用jQuery的情况下,是否存在跨不同浏览器(IE8,IE7,Firefox)一致的等效属性? 问题答案: 这与浏览器的盒子模型有关。使用jQuery或其他JavaScript抽象库之类的东西来规范DOM模型。

  • 当我点击像这样的API时,我想要一个图像 当我点击这个API时,它将返回给我一个图像。

  • 问题内容: 在Selenium选项(在Firefox上)中,我可以找到 。 是否可以使用此选项在 Chromium浏览器 (而非Chrome)中运行Selenium测试? 问题答案: 是。用于镀铬 您可以使用的其他选项是 custom, chrome(注意:这不是Google chrome,仅适用于Firefox模式), googlechrome, iexplore。请查看硒文档以获取模式的完整列