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:服务器端错误,服务器未能实现合法的请求;

时间: 2024-10-15 05:14:55

Nginx基础之http、https、socket 、SSL及TCP简单关系的相关文章

浅谈HTTPS和SSL/TLS协议的背景和基础

相关背景知识要说清楚HTTPS协议的实现原理,至少要需要如下几个背景知识.大致了解几个基础术语(HTTPS.SSL.TLS)的含义大致了解HTTP和TCP的关系(尤其是"短连接"和"长连接")大致了解加密算法的概念(尤其是"对称加密和非对称加密")大致了解CA证书的用途 考虑到很多的技术菜鸟不可能了解到上述的背景,我想用最简单的文字描述一下.如果你自己认为自己不是菜鸟,请略过此文,直接看"HTTP协议的需求". HTTPS:首

浅谈 HTTPS 和 SSL/TLS 协议的背景与基础

相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 TCP 的关系(尤其是"短连接"VS"长连接") 大致了解加密算法的概念(尤其是"对称加密与非对称加密"的区别) 大致了解 CA 证书的用途 考虑到很多技术菜鸟可能不了解上述背景,俺先用最简短的文字描述一下.如果你自认为不是菜鸟,请略过本章节,直接去看"HTTPS 协议的需求&

nginx基础及其相关配置

nginx基础 Nginx的基本架构 一个master主进程,生成一个或多个worker子进程 事件驱动 epoll(边缘触发),用于Linux kqueue:用于BSD /dev/poll: IO复用器:select.poll.rt signal 支持sendfile及sendfile64 支持AIO 支持mmap 名词解释: sendfile机制:正常响应报文路径"内核空间-->用户空间-->内核空间-->客户端",如果报文在用户空间不做任何改变时,路径不再经由用

Https协议:SSL建立过程分析(也比较清楚,而且有OpenSSL的代码)

web访问的两种方式: http协议,我们一般情况下是通过它访问web,因为它不要求太多的安全机制,使用起来也简单,很多web站点也只支持这种方式下的访问. https协议(Hypertext Transfer Protocol over Secure Socket Layer),对于安全性要求比较高的情况,可以通过它访问web,比如工商银行https://www.icbc.com.cn/icbc/(当然也可以通过http协议访问,只是没那么安全了).其安全基础是SSL协议. SSL协议,当前版

Nginx基础整理

目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Nginx的主要企业功能 Nginx作为web服务器的主要应用场景包括: Nginx的安装 安装环境 快速安装命令集合 各个命令解释 脚本 注意 安装故障总结 故障一:没有安装pcre或pcre-devel 故障二:没有安装openssl和openssl-devel 常用的Nginx http功能模块 Nginx的目录结构 Nginx最重要的配置文件nginx.conf详解 生产中常见的网站状态码 Nginx基础知识:

HTTPS、SSL与数字证书介绍

在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 HTTPS:在HTTP(超文本传输协议)基础上提出的一种安全的HTTP协议,因此可以称为安全的超文本传输协议.HTTP协议直接放置在TCP协议之上,而HTTPS提出在HTTP和TCP中间加上一层加密层.从发送端看,这一层负责把HTTP的内容加密后送到下层的TCP,从接收方看,这一层负责将TCP送来的数据解密还原成HTTP的内容. SSL(Secure Soc

Https之SSL原理

一.HTTPS和SSL HTTP(Hyper TEXT Transfer Protocol超文本传输协议)是目前互联网上应用最为广泛的一种网络协议,用于在Web浏览器和网站服务器之间传递信息,但是HTTP协议以明文的方式发送内容,不提供任何数据加密,攻击者能够很轻易通过抓包的方式截取传输内容并读懂其中的信息,所以HTTP不适合传输一些比较私密的信息,为了解决HTTP这一缺陷,HTTPS(Hyper TEXT Transfer Protocol over Secure Socket Layer)协

HTTPS、SSL、TLS三者之间有什么联系和区别?

SSL(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议加密层,最初是由网景公司(Netscape)研发,后被IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入(RFCRequest For Comments 请求注释),RFC里包含了很多互联网技术的规范! 起初是因为HTTP在传输数据时使用的是明文(虽然说POST提交的数据时放在报体里看不到的,但是还是可以通过抓包工具窃取到)是不安全的,为了解决

Nginx基础笔记

Nginx基础笔记 资源 安装 ubuntu下 编译安装 基本操作 HTTP基本配置 配置说明 配置文件目录结构 配置文件结构 模块 模块化 index模块 Log模块 Real IP模块 Access模块 Rewrite模块 Proxy模块 upstream模块 其他 配置静态化目录 负载均衡 控制页面缓存 nginx的内置变量 nginx小结 资源 资源 Nginx 官网 Nginx 官方下载地址 Nginx最佳实践配置项目 地址 Nginx Configuration wiki 教程 ag