Nginx基础之http、https、socket 、SSL及TCP简单关系

简介:

 nginx是比较流行的轻量级的web服务器,但在实际的应用中基本是利用其upstream模块来作为web的反向代理和负载均衡;当然nginx也可以作为mail的反向代理,这个情况比较少,主要还是web代理,谈到web基本上逃不过http\https\SSL\TCP这四个协议。

  理解http\https\SSL\TCP这四个协议之间的关系有助于后期对nginx的安装、配置和优化。


一、HTTP协议

  HTTP协议定义了web客户端如何从web服务器上请求web页面,以及服务如何把web页面传输给web客户端。目前http是协议发展到http 1.1 版本(RFC2616),它与旧版http 1.0版本(RFC 1945)相互兼容。


HTTP流程基本原理:

(1)HTTP请求:web浏览器先向本地的socket发送HTTP请求,socket使用TCP向web服务器请求连接,经过TCP三次握手后将请求发送到服务器的socket,服务器的socket将请求信息发送给web服务器应用。

(2)HTTP响应:web服务器接到请求后将结果信息传送到服务器本地的socket,服务器本地socket通过TCP将结果信息传送给web客户端本地的socket,最终web客户端的socket将信息传递给web浏览器。


HTTP有一个重要的特征是无状态协议,意味着每一次请求都会执行一次上述的流程,在少量请求的情况下,用户不会感知响应速度,但是一旦大量并发,有可能性能就下降加快,根据上述的流程我们可以考虑从以下四点进行优化:

(1)TCP是一个有拥塞控制机制的,在建立连接初期会以慢速传送,一旦确定网络不拥塞才会上升一个较快的速度进行传送,这个过程称之为TCP慢启动。所以考虑调整TCP相关的参数。

(2)根据情况考虑选择HTTP持久连接或者HTTP非持久连接。非持续连接每一次访问都会执行一次流程,适合少量访问的站点。持续连接是一个客户端一旦和服务器连接,后续的访问可利用这次连接可快速访问,无需再经历一次慢启动,当服务器端在一定的时间内不再接到同一客户端的访问时,断开连接;

上述的两点有个具体的例子,可以参考http://h2ofly.blog.51cto.com/6834926/1616306

(3)压缩传送的信息量。这个需要web服务器内是否设置动静态压缩;

(4)是否需要本地的缓存代理;


二、HTTPS协议

  HTTPS协议简单一点就是HTTP+SSL(Secure Socket Layer),SSL协议栈如下:

HTTP
SSL
TCP
IP

https流程基本原理:

(1)客户端向服务器发起会话,协商传送加密算法;服务器向客户端发送服务器数字证书。客户端想证书颁发机构证实证书的有效性,并用查询到的服务器证书的公钥加密建立加密会话的密钥后发送过服务器;服务器接到加密的密钥后,用私钥解密得到密钥;

(2)利用(1)中得到的密钥,将每次的HTTP请求信息和请求结果进行加密传输;


三、HTTP响应码

1xx:指示信息,表示请求已接收,继续处理;

2xx:成功,表示请求已被成功接收;

3xx:重定向,表示完成请求必须进行更进一步的操作;

4xx: 客户端错误,请求有语法错误或者请求无法实现;

5xx:服务器端错误,服务器未能实现合法的请求;


四、参考文章

Apache\Nginx\Lighttpd之间的对比:

http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html





本文转自 bannerpei 51CTO博客,原文链接:http://blog.51cto.com/281816327/1619556,如需转载请自行联系原作者

相关文章
|
2月前
|
缓存 安全 网络协议
HTTP和HTTPS的区别有哪些?
本文简要总结了 HTTP 和 HTTPS 的区别,从概念、端口、连接方式、使用场景、安全性等多个角度进行了对比。HTTP 是无状态的、无连接的应用层协议,适用于一般性网站和性能要求较高的应用;HTTPS 则通过 SSL/TLS 层提供加密、认证和完整性保护,适用于涉及敏感信息和高安全性的场景。文章还讨论了两者在性能上的差异,包括握手和加密开销、缓存效果以及 HTTP/2 的多路复用技术。最终,根据具体需求选择合适的协议能够更好地平衡安全性和性能。
287 2
HTTP和HTTPS的区别有哪些?
|
1月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
58 3
|
1月前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
4天前
|
安全 网络安全 数据安全/隐私保护
第六问:http和https区别与联系
HTTP 和 HTTPS 是现代网络通信中的两种重要协议。HTTP 是明文传输协议,无加密功能;HTTPS 在 HTTP 基础上加入 SSL/TLS 加密层,提供数据加密、身份验证和数据完整性保障。HTTP 适用于非敏感信息传输,如新闻网站;HTTPS 适用于在线支付、账户登录等需要保护用户数据的场景。
18 0
|
28天前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
52 3
|
28天前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
102 3
|
1月前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
58 5
|
1月前
|
存储 网络安全
Curl error (60): SSL peer certificate or SSH remote key was not OK for https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/repodata/repomd.xml [SSL: no alternative certificate subject name matches target host name 'update.cs2c.com.cn']
【10月更文挑战第30天】在尝试从麒麟软件仓库(ks10-adv-os)下载元数据时,遇到 SSL 证书验证问题。错误提示为:`Curl error (60): SSL peer certificate or SSH remote key was not OK`。可能原因包括证书不被信任、证书与域名不匹配或网络问题。解决方法包括检查网络连接、导入 SSL 证书、禁用 SSL 证书验证(不推荐)、联系仓库管理员、检查系统时间和尝试其他镜像。
220 1
|
1月前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
37 3
|
1月前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
58 4

热门文章

最新文章

下一篇
DataWorks