当前位置: 首页 > wzjs >正文

企业网站建设费用做管理费用吗外贸一般在哪个网站做的

企业网站建设费用做管理费用吗,外贸一般在哪个网站做的,k2 wordpress,兰博沃金牛座手表官方网站本文将介绍下浏览器访问https站点的完整过程(以https://www.baidu.com为例) ,包括直接访问和通过代理访问的区别。 1. 直接访问 HTTPS 站点(不经过代理) 当浏览器直接访问 https://www.baidu.com 时,整个…

本文将介绍下浏览器访问https站点的完整过程(以https://www.baidu.com为例) ,包括直接访问和通过代理访问的区别。

1. 直接访问 HTTPS 站点(不经过代理)

当浏览器直接访问 https://www.baidu.com 时,整个过程如下:

(1) DNS 解析
  • 浏览器首先解析 www.baidu.com 的 IP 地址。

  • 如果本地缓存中没有对应的 IP 地址,浏览器会向 DNS 服务器发送查询请求。

(2) 建立 TCP 连接
  • 浏览器通过解析到的 IP 地址和 HTTPS 默认端口(443),与目标服务器建立 TCP 连接。

  • 这是一个普通的 TCP 连接,尚未涉及加密。

(3) TLS/SSL 握手
  • 在 TCP 连接建立后,浏览器会发起 TLS/SSL 握手。

  • TLS/SSL 握手的主要目的是协商加密算法、验证服务器身份,并交换密钥。

  • 握手过程

    1. 浏览器发送 ClientHello 消息,包含支持的 TLS 版本、加密算法列表和一个随机数。

    2. 服务器返回 ServerHello 消息,选择 TLS 版本、加密算法,并发送服务器的随机数和证书。

    3. 浏览器验证服务器的证书(确保证书是由受信任的证书颁发机构签发的)。

    4. 浏览器生成一个预主密钥(Pre-Master Secret),并使用服务器的公钥加密后发送给服务器。

    5. 服务器使用私钥解密预主密钥。

    6. 浏览器和服务器使用预主密钥和随机数生成对称加密密钥(Session Key)。

    7. 握手完成,后续通信使用对称加密密钥加密。

(4) 发送 HTTP 请求
  • TLS/SSL 握手完成后,浏览器会通过加密的通道发送 HTTP 请求。

  • 例如:

    复制

    GET / HTTP/1.1
    Host: www.baidu.com
    Connection: keep-alive
(5) 接收 HTTP 响应
  • 服务器通过加密的通道返回 HTTP 响应。

  • 例如:

    复制

    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 1234<html>...</html>
(6) 关闭连接
  • 如果 HTTP 头中包含 Connection: close,浏览器会关闭 TCP 连接。

  • 否则,连接会保持打开状态,以便复用(HTTP Keep-Alive)。


2. 通过代理访问 HTTPS 站点

当浏览器通过代理服务器访问 https://www.baidu.com 时,整个过程如下:

(1) DNS 解析
  • 浏览器解析代理服务器的 IP 地址(而不是 www.baidu.com 的 IP 地址)。

(2) 建立 TCP 连接
  • 浏览器与代理服务器建立 TCP 连接。

(3) 发送 CONNECT 请求
  • 浏览器向代理服务器发送 CONNECT 请求,请求与目标服务器建立隧道。

  • 例如:

    复制

    CONNECT www.baidu.com:443 HTTP/1.1
    Host: www.baidu.com:443
    Proxy-Connection: Keep-Alive
(4) 代理服务器建立 TCP 连接
  • 代理服务器解析 www.baidu.com 的 IP 地址,并与目标服务器建立 TCP 连接。

(5) 代理服务器响应 CONNECT 请求
  • 如果代理服务器成功与目标服务器建立 TCP 连接,它会向浏览器返回 HTTP/1.1 200 Connection Established 响应。

  • 例如:

    复制

    HTTP/1.1 200 Connection Established
    Proxy-agent: tistar-mitmproxy
(6) TLS/SSL 握手
  • 浏览器通过代理服务器与目标服务器进行 TLS/SSL 握手。

  • 代理服务器只是中转数据,不参与 TLS/SSL 握手。

(7) 发送 HTTP 请求
  • TLS/SSL 握手完成后,浏览器通过加密的通道发送 HTTP 请求。

  • 例如:

    复制

    GET / HTTP/1.1
    Host: www.baidu.com
    Connection: keep-alive
(8) 接收 HTTP 响应
  • 目标服务器通过加密的通道返回 HTTP 响应。

  • 代理服务器将响应转发给浏览器。

(9) 关闭连接
  • 如果 HTTP 头中包含 Connection: close,浏览器会关闭与代理服务器的 TCP 连接。

  • 否则,连接会保持打开状态,以便复用。


3. 直接访问与代理访问的区别

步骤直接访问 HTTPS 站点通过代理访问 HTTPS 站点
DNS 解析解析目标服务器(如 www.baidu.com解析代理服务器
TCP 连接直接与目标服务器建立 TCP 连接与代理服务器建立 TCP 连接
TLS/SSL 握手直接与目标服务器进行 TLS/SSL 握手通过代理服务器与目标服务器握手
HTTP 请求直接发送加密的 HTTP 请求通过代理服务器发送加密的 HTTP 请求
数据中转代理服务器中转数据

4. 总结

  • 无论是直接访问还是通过代理访问 HTTPS 站点,浏览器都需要先建立 TCP 连接,然后进行 TLS/SSL 握手。

  • 直接访问时,浏览器直接与目标服务器通信。

  • 通过代理访问时,浏览器与代理服务器通信,代理服务器再与目标服务器通信。

  • 你的代码直接断开连接是因为未处理 TLS/SSL 握手,而 HTTPS 服务器期望的是一个加密的连接。

5. 示例

如果与https站点建立tcp连接后,没有进行TLS/SSL握手,直接发送数据,则服务器会断开本次连接。原因是:

  1. 服务器期望的是一个 TLS/SSL 握手,但你的代码发送了一个明文 HTTP 请求。

  2. 服务器检测到不符合预期的数据,因此直接断开连接。

如下面的代码:

var net = require('net')let port = 443;
let host = "www.baidu.com"
let url = 'https://www.baidu.com/';var client = net.connect(port, host, function(){console.log("==> 连接到服务器")const line1 = `GET ${url} HTTP/1.1\r\n`;const head = `Host: ${host}\r\nConnection: keep-alive\r\n`;const blankLine = "\r\n";client.write(`${line1}${head}${blankLine}`)
})//客户端收到服务端数据的事件
client.on('data',function(resData){console.log('==> 客户端:收到服务端响应数据为'+resData.toString())
})// 收到数据后不需要保持连接,则断开
client.on('end',function(){console.log('==> 断开与服务器的连接')})
client.on('error', function(err) {console.error('==> 客户端出错:', err);
});

执行以上代码,不会收到服务端的数据,而是会直接断开连接。输出如下:

==> 连接到服务器
==> 断开与服务器的连接

问题原因

直接使用 net.connect 连接到 www.baidu.com:443,但没有处理 TLS/SSL 握手。因此,服务器期望的是一个 TLS/SSL 加密的连接,但代码没有提供加密层,导致服务器直接断开连接。

具体问题
  1. 未进行 TLS/SSL 握手

    • 你的代码直接发送了一个明文 HTTP 请求(GET / HTTP/1.1),但服务器期望的是一个 TLS/SSL 握手。

    • 服务器检测到不符合预期的数据,因此直接断开连接。

  2. net.connect 不支持 TLS/SSL

    • net.connect 只能建立普通的 TCP 连接,无法处理 TLS/SSL 加密。

    • 你需要使用 tls.connect 来处理 TLS/SSL 握手。

如果要使上面的程序可以与服务器正常进行数据交互,就需要解决TLS/SSL握手的问题,可以将nodejs 的 net 模块修改为 tls 模块,修改后的代码如下:

var tls = require('tls')let port = 443;
let host = "www.baidu.com"
let url = 'https://www.baidu.com/';var client = tls.connect(port, host, function(){console.log("==> 连接到服务器")const line1 = `GET ${url} HTTP/1.1\r\n`;const head = `Host: ${host}\r\nConnection: keep-alive\r\n`;const blankLine = "\r\n";client.write(`${line1}${head}${blankLine}`)
})//客户端收到服务端数据的事件
client.on('data',function(resData){console.log('==> 客户端:收到服务端响应数据为'+resData.toString())
})// 收到数据后不需要保持连接,则断开
client.on('end',function(){console.log('==> 断开与服务器的连接')})
client.on('error', function(err) {console.error('==> 客户端出错:', err);
});
关键点
  1. 使用 tls.connect

    • tls.connect 会处理 TLS/SSL 握手,确保与 HTTPS 服务器的通信是加密的。

  2. 发送 HTTP 请求

    • 在 TLS/SSL 握手完成后,发送明文 HTTP 请求(如 GET / HTTP/1.1)。

  3. rejectUnauthorized: false

    • 忽略证书验证错误(仅用于测试,生产环境中应验证证书)。


文章转载自:

http://0ZNPuwJU.skkLn.cn
http://vpuST54r.skkLn.cn
http://m8YhVrTX.skkLn.cn
http://Ab2o0Ut4.skkLn.cn
http://qLq3DAQE.skkLn.cn
http://Np92dDeR.skkLn.cn
http://uklSi8f9.skkLn.cn
http://TLa3IHin.skkLn.cn
http://haysA5VP.skkLn.cn
http://2JfZN5sm.skkLn.cn
http://Uk6lW22X.skkLn.cn
http://Jmqy6Dem.skkLn.cn
http://8AULEnr9.skkLn.cn
http://G59qPNvQ.skkLn.cn
http://OgKZiqlg.skkLn.cn
http://9h5XMQ7v.skkLn.cn
http://D7yoZxkZ.skkLn.cn
http://3tJo4qa7.skkLn.cn
http://3FvfmwuM.skkLn.cn
http://Qa1AXJgW.skkLn.cn
http://rXokKRCH.skkLn.cn
http://U2OK9v9u.skkLn.cn
http://qkBHueH8.skkLn.cn
http://X5qt1nd6.skkLn.cn
http://XysDqVZ0.skkLn.cn
http://qKYuD0AC.skkLn.cn
http://TuDnYpIC.skkLn.cn
http://mjEH1pMg.skkLn.cn
http://kn6AfoDA.skkLn.cn
http://33N2ShQn.skkLn.cn
http://www.dtcms.com/wzjs/709380.html

相关文章:

  • 网站建设经营服务合同班级网页模板
  • 济南建设官方网站东莞企业营销推广
  • 中山有网站建设公司吗wordpress首页聚合模块
  • 前端静态网站模板下载app推广在哪里可以接单
  • 河北城乡建设官方网站实名认证
  • 网站服务器建设合同范本扬中网站建设服务
  • sns网站设计国家建设部网站证书查询
  • 国家正规网站查询网站建设哪里去学
  • 网站如何加入流量统计wordpress短视频主题
  • 国外网站网站app做网站专业公司电话
  • 深圳公司网站设计企业详情页设计 制作
  • 输入网站域名怎么用ps做京东网站模板
  • 网站注册域名与制作wordpress如何在底部设置备案
  • 电脑哪里做模板下载网站接单网个人接单
  • 别人是怎么建设网站的二手图书交易网站建设
  • 普集网站开发内网代理ip建设网站
  • seo站长论坛招聘做网站专业人员
  • 学习建设网站难么鲜花网站开发与设计
  • 建 新闻 网站.net最新网站开发
  • 哪个网站可以做名片wordpress 页面查询
  • 建设一个网站的方法学网站开发要什么基础
  • 云南营销网站建设做任务的网站有那些
  • 盐城做网站的价格杭州网页设计制作
  • 做电影种子下载网站违法吗服装定制网站的设计与实现
  • 公司网站建设费属于宣传费吗wordpress多说评论
  • 湖南专业做网站企业wordpress创建空白网页
  • 邯山专业做网站保健品网站怎么做的
  • 网站制作一般多少钱沃噻网站建设流程
  • 企业网站的建设意义是什么网站建设推介会发言稿
  • 汕尾手机网站建设报价网站上线后想修改