关键词排名优化网站,上海有几个区分别叫什么名字,dw制作网页用的模板,wordpress4.7添加菜单目录
HTTP/HTTPS介绍
HTTP/HTTPS基本信息
HTTP请求与应答报文
HTTP请求报文
HTTP响应报文
SSL协议
SSL单向认证
SSL双向认证
HTTP连接建立与传输步骤
HTTP访问全过程相关报文#xff08;以访问www.download.cucdccom为例子#xff09;
DNS报文解析
TCP三次握手连…目录
HTTP/HTTPS介绍
HTTP/HTTPS基本信息
HTTP请求与应答报文
HTTP请求报文
HTTP响应报文
SSL协议
SSL单向认证
SSL双向认证
HTTP连接建立与传输步骤
HTTP访问全过程相关报文以访问www.download.cucdccom为例子
DNS报文解析
TCP三次握手连接
进行HTTP交互明文
HTTPS连接建立与传输步骤
HTTPS通信全过程简要步骤
HTTPS访问全过程相关报文以访问www.baidu.com为例子
DNS解析报文
TCP三次握手连接
SSL握手报文单向
进行HTTPS交互密文 HTTP/HTTPS介绍
HTTP/HTTPS基本信息
HTTPHypertext Transfer Protocol基本概念
HTTP是用于从万维网www服务器传输超文本到本地浏览器的超文本传输协议所有的HTML文件网页文件都是遵循这个标准进行传输的
并且HTTP是一种分布式、通用的、无状态的面向应用层的协议C/S架构也支持B/S
HTTP的分布式特性
分布式指的是一个网站上的内容分布到多个服务器上
HTTP的无状态性
web服务器不会针对用户的访问过程做记录
当一个用户访问过该网站后等下次第二次访问时服务器不知道该用户曾经访问过
该特性简化了HTTP服务器的设计使其更容易支持大量并发的HTTP请求
Cookie—帮助HTTP实现有状态
HTTP协议通过在请求/响应报文中写入Cookie信息来识别客户端将客户端发送的小心进行上下文关联
具体过程如下
Cookie是一种在客户端保持HTTP状态信息的技术由Web服务器将其携带在响应报文中发送给客户端浏览器存储在客户端
当用户第一次请求HTTP服务器时服务器不知道用户的身份当服务器向其发送HTTP响应时会为其创建一个独特的身份标识数据也就是Cookie格式为keyvalue并通过在本地创建一个MAP结构来存储Cookie然后将其放入set-cookie字段随着响应报文一同发给用户
当用户收到响应报文后将set-cookie中的cookie保存起来这个就是服务器发给我的身份标识当用户下一次请求的时候就会将这cookie放进请求字段中发给服务器
当服务器收到请求后发现有cookie字段查询是来自哪一个客户端的请求与服务器中的cookie对比识别出用户身份提供个性化服务 HTTP的连接方式
非持久性连接该连接不是持久存在的一个连接只进行一次数据交互即每次传输数据时建立此连接数据传输完毕后就断开连接
持久性连接连接是持久存在的在一个连接中进行多次的数据交互
HTTPS基本概念
为什么提出HTTPS
由于HTTP是不加密的在公网上明文传输缺少保密性
为了保证隐私数据能够加密传输所以就出现了安全加密的HTTP协议也就是HTTPS协议
HTTPS就是通过SSL/TLS对HTTP协议进行加密HTTPSSSL/TLSHTTP
HTTPS和HTTP的区别
HTTPS协议需要使用到数字证书需要向CA申请
HTTPS和HTTP端口号不一样HTTP为TCP 80端口HTTPS为TCP 443端口
HTTPS能够对传输的信息进行加密更加安全
URLUniform Resource Locator的概念
URL是统一资源定位符用来唯一标识万维网中的某一个文档通过URL可以直接使用HTTP/HTTPS协议访问到具体的文档
URL由协议、主机、端口号、文件名及路径组成 HTTP请求与应答报文
HTTP请求报文 请求行
Request Method请求方法GET和POST是比较常见的请求方法
GET请求获取Request-URL所标识的资源
POST在Request-URL所标识的资源后附加新的数据上传数据—例如登录-HTTP为明文
DELETE请求服务器删除Request-URL所标识的资源
HEAD请求获取有Request-URL所标识的资源的响应消息报头
OPTIONS请求查询服务器的性能或查询与资源相关的选项和需求
PUT请求服务器存储一个资源并用Request-URL作为其标识
TRACE请求服务器回送收到的请求消息主要用于测试或诊断
CONNECT保留将来使用
Request URL 请求的URL
Request VersionHTTP版本号
请求头部由关键字和值组成关键字和值使用”:”分隔每行一对
Host请求的主机名允许多个域名同处一个IP 地址即虚拟主机
Connection连接方式(close 或 keepalive)
User-Agent携带用户主机的操作系统版本、访问该网站的浏览器信息等
Accept客户端可识别的响应内容类型列表星号 “ * ” 用于按范围将类型分组用 “ */* ” 指示可接受全部类型用“ type/* ”指示可接受 type 类型的所有子类型;
Referer告诉服务器我目前访问的该网页来自哪个页面referer主要出现在网页之间相互跳转的场景
Accept-Language客户端可接受的自然语言
Accept-Encoding客户端可接受的编码压缩格式
Accept-Charset可接受的应答的字符集
Cookie存储于客户端扩展字段向同一域名的服务端发送属于该域的cookie记录登录的状态第一次登录输入账号密码后续登录就不需要登录了
HTTP响应报文 状态行
Status Code状态码
状态码由三位数字组成第一位数字表示响应的类型常用的状态码有五大类如下所示 1xx表示服务器已接收了客户端请求客户端可继续发送请求; 2xx表示服务器已成功接收到请求并进行处理; 3xx表示服务器要求客户端重定向; 4xx表示客户端的请求有非法内容;
5xx表示服务器未能正常处理客户端的请求而出现意外错误;
具体常见状态码的值及其描述 200 OK表示客户端请求成功; 302 Found表示该资源原本存在但是已经被临时改变了位置服务器通常会给浏览器发送Location字段来告诉浏览器改变后的位置 307 Internal Redirect内部重定向与302其实是一致的唯一的区别在于307状态码不允许浏览器将原本为POST的请求重定向到GET请求上 400 Bad Request表示客户端请求有语法错误不能被服务器所理解 404 Page Not Found标识客户端请求的资源不存在
首部行由关键字和值组成关键字和值使用”:”分隔每行一对
Server告诉浏览器服务器的名称和版本号如Apache/2.2.10深信服可以通过AF将此字段隐藏—应用隐藏功能
Content-Type实体报头域用语指明发送给接收者的消息主体的媒体类型如Content-Type:text/html SSL协议
SSL协议基本概念
SSLSecure Socker Layer安全套接字层位于应用层和传输层之间的一种协议层属于Socket层的时间
SSL建立在TCP之上为应用层协议提供数据封装、压缩、加密等基本功能
并且可以通过互相认证、使用数字签名、加密等实现客户端和服务器之间的安全通信
SSL协议的组成
SSL协议是由SSL记录协议层和SSL握手协议层两层组成的一个协议簇
SSL记录协议层
该层是为高层协议提供基本的安全服务实现对数据的分块、加解密、压缩与解压缩、完整性校验以及高层协议的封装
SSL记录协议针对HTTP协议进行了特别的设计使得HTTP能够在SSL上运行
SSL握手协议层
SSL握手协议层包含SSL握手协议SSL HandShake Protocol、SSL密码变更协议SSL Change Cipher Spec Protocol、SSL报警协议SSL Alert Protocol
SSL密码更改协议更新用于当前连接的密码组
SSL报警协议为通信的双方传递SSL的相关警告
SSL握手协议允许通信实体在交换应用数据之前协商密钥的算法并对客户端进行认证 SSL握手的相关报文内容字段在HTTPS访问全过程讲解
SSL单向认证
握手步骤简单讲解
客户端发送client hello包含支持的协议版本、加密算法和随机数A服务返回Hello公钥证书、随机数B客户端使用CA验证服务器证书确认无误后生成随机数c用公钥加密发给服务器客户端通过a、b、c生成对称秘钥进行数加密服务用私钥解密得到c通过a、b、c生成对称秘钥进行数据加密最后双方进行数据加密
握手步骤详细讲解
1、交互Hello报文客户端生成随机数R1服务端生成随机数R2相互交换协商配置信息SSL版本、加密算法等
2、服务端向客户端发送数字证书并通过加密算法生成一个Server Params椭圆曲线的公钥该公钥通过服务端的私钥签名认证---当进行双向验证时则需要客户端也向服务器发送证书
3、客户端使用CA的公钥解密证书验证服务端证书的真实性然后通过证书的摘要算法对证书数据生成摘要与证书携带的摘要进行对比来验证书是否被篡改。此时客户端获得证书的公钥。并通过该服务端公钥解密服务端发来的Server Params
4、此时客户端就有了R1、R2和Server Params三个参数这时客户端也会通过双方协商的加密算法生成一个Client Params椭圆曲线的公钥并通过服务端的公钥加密将其发给服务端然后将Client Params和Server Params生成一个Pre-Masterkey也算是一个随机数最后客户端又通过R1、R2、Pre-Master生成主秘钥
5、然后服务器端通过私钥解密得到客户端发来的Client Params然后服务器也会根据R1、R2、Server Params、Client Params先生成Pre-MasterKey再生成主秘钥由于黑客破解不了客户端发送的Client Params因此无法得到数据密钥
6、最后双方通过主秘钥派生出的客户端会话密钥和服务端会话秘钥来加密数据 交互报文 Client Hello
携带客户端的SSL版本、加密套件列表、压缩算法列表、客户端随机数sessionid0
Server Hello
服务器根据客户端的Hello报文协商加密套件、压缩算法、计算sessionid
将其发送给客户端并携带生成的随机数
Server Certificate
服务器将自己的证书发给客户端
Server Hello Done
服务器通知客户端握手消息发送完成
Client Key Exchang
客户端密钥交换产生预主秘钥preMasterKey将自己的Client Params使用服务器的公钥加密
Change Cipher Spec
改变加密约定消息通知服务端之后的消息启用加密参数
Client Finished Message
客户端SSL协商成功结束发送握手验证报文确保消息的完整性
Change Cipher Spec
改变加密约定消息通知客户端之后的消息启用加密参数
Server Finished Message
服务器SSL协商成功结束发送握手验证报文确保消息的完整性
SSL双向认证
SSL双向认证就是多了服务器验证客户端证书的认证服务器发送自己的证书之后同时请求客户端的证书客户端将证书发送给服务器服务器通过CA进行验证客户端认证
具体报文交互 HTTP连接建立与传输步骤
HTTP不同场景下的通信过程和用户上网认证过程分析-CSDN博客https://blog.csdn.net/m0_49864110/article/details/134864720?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22134864720%22%2C%22source%22%3A%22m0_49864110%22%7D
浏览器分析URL连接找到访问的域名并发送DNS请求得到关于该域名的IP地址DNS将解析出来的IP地址返回给浏览器浏览器与服务器建立TCP连接浏览器发送请求GET或POST服务器给出响应断开TCP连接
HTTP访问全过程相关报文以访问www.download.cucdccom为例子
DNS报文解析 TCP三次握手连接 进行HTTP交互明文 HTTPS连接建立与传输步骤
HTTPS通信全过程简要步骤
浏览器分析URL连接找到访问的域名并发送DNS请求得到关于该域名的IP地址DNS将解析出来的IP地址返回给浏览器
3、浏览器与服务器建立TCP连接
4、进行SSL握手
5、进行加密数据传输
6、释放TCP连接同HTTP
HTTPS访问全过程相关报文以访问www.baidu.com为例子
DNS解析报文 TCP三次握手连接 SSL握手报文单向
进行SSL握手阶段 VersionSSL版本号
Random客户端随机数
Cipher suites支持的加密算法列表
Server name服务端名称www.baidu.com
Compression Methods支持的压缩算法
还会携带sessionid 确定SSL版本、加密套件、压缩算法、携带服务器生成的随机数、计算sessionid
Version版本号
Random随机数
Session ID计算出来的会话ID
Cipher suite加密套件算法
Compression Method压缩算法此处表示没有 进行HTTPS交互密文
数据加密传输