HTTP及HTTPS

几个重要概念:

什么是超文本?

包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。又被称为网页,最常见的超文本格式是超文本标记语言html。

什么是URL?

统一资源定位符。唯一标识某个文档。由协议、主机和端口、文件名三部分组成。

什么是http?

HTTP(Hypertext Transfer Protocol)是一种用于在网络上进行数据通信的协议。它是Web应用中最为常用的协议之一,负责在客户端和服务器之间传输超文本文档。(由URL指示)

HTTP工作原理:

用户在浏览器点击url链接地址后,

1.浏览器分析超链接中的url地址

2.浏览器向DNS服务器请求解析域名所对应的IP地址

3.DNS将IP地址返回给浏览器

4.浏览器与服务器建立tcp连接(80端口)

5.浏览器向服务器发送HTTP请求报文

6.服务器返回给浏览器响应报文,将index.html文档发送给浏览器

7.浏览器渲染index.html中的内容,显示页面

8.用户超过keepalived的时间内没发送请求,连接断开

HTTP报文结构(主要内容):

请求报文:

method:获取网页信息的方法   GET POST

http version:http协议的版本

host:访问的url是什么

user-agent:发出请求的一方使用的浏览器是什么

connetion:close表示连接断开,超时  keep-alive 表示没有超时,连接没断开

Accpet:表示浏览器接收的数据类型,支持哪些类型或者格式的数据

Accept-Encoding:gzip,deflaue 接收的数据的编码,是否进行压缩

cookie:客户机访问服务器的时候,携带的数据,数据用于验证用户是否登录过,是老用户还是新用户

响应报文:

http协议:1.1

状态码:200 (正常访问)

data:日期

server:web服务器使用的是什么软件 

Date :响应报文发送的日期

Last-Modified:网页数据上一次修改的时间,如果修改,状态码变为304

referer:从哪个网址跳转过来的

有哪些http的方法:

GET:请求web服务器给我们客户机某个内容

POST:请求web服务器给我们客户机某个内容

DELETE:请求web服务器删除某个内容

PUT:要求web服务器存储某个内容

状态码:

200 服务器正常发送了响应报文

304 服务器通过请求报文里的数据判断服务器的数据是否修改,没有修改的状态码就是304

301 永久重定向

302 临时重定向,从一个网站跳转到另一个网站

404 网页不存在

403  没有权限 forbidden

503 服务器暂时不可用,限制了资源的访问

问题:

GET和PSOT方法有什么区别?

GET方法是在URL里面传递参数,参数是明文,而且携带的参数有限,http的请求报文里的URL的字段的值是有限制的,不能携带过多的参数

POST方法 是在body里传递参数给服务器(经典应用是表单信息提交),可以携带非常多的数据

cookie和session有什么区别?

存储位置:Cookie存储在用户计算机上,Session存储在服务器上。

数据安全性:由于Cookie存储在用户计算机上,可能会被用户篡改或盗取。而Session数据存储在服务器上,相对更安全。

存储容量:Cookie的存储容量有限,通常为几KB。而Session可以存储更大量的数据。

生命周期:Cookie可以设置过期时间,可以在用户关闭浏览器后仍然存在。而Session通常在用户关闭浏览器或一定时间不活动后自动过期。

跨域支持:Cookie可以在同一域名下的不同页面之间共享。而Session默认情况下只能在同一个Web应用程序中共享。

http1.0跟2.0的区别?

2.0是二进制传输,安全性好,采用多路复用(并发,速度快),并支持头部信息压缩(减少带宽的浪费,提升传输速度,减少传输时间)

HTTPS是什么?

HTTPS(Hypertext Transfer Protocol Secure)是一种用于在计算机网络上安全传输数据的协议。它是基于HTTP协议的加密版本,通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议来保护通信过程中的数据安全。在HTTP的基础上通过信息加密和身份认证保证了传输过程的安全。

好处:

1.数据传输加密

2.需要核实服务器身份

Linux中nginx实现HTTPS,需要ssl证书和对应的域名

HTTPS四次握手的过程:

  1. 客户端发送Client Hello请求:客户端通过向服务器发送一个Client Hello请求来启动握手过程。该请求包含了客户端支持的TLS版本、加密套件列表以及一个随机数作为种子。

  2. 服务器回应Server Hello和证书:服务器接收到客户端的Client Hello请求后,选择一个合适的TLS版本、加密套件,并生成自己的随机数作为种子。服务器将其响应返回给客户端,包括Server Hello消息、选定的TLS版本、加密套件、服务器证书以及另一个随机数。

  3. 客户端验证证书并生成密钥:客户端收到服务器的响应后,首先会对服务器的证书进行验证。这包括检查证书的有效性、签名是否可信等。如果验证通过,则客户端生成一个用于后续加密通信的预备主密钥(Pre-Master Secret)。客户端通过服务器的公钥加密该密钥,并将其发送给服务器。

  4. 服务器解密预备主密钥并生成加密通信所需信息:服务器收到客户端发送的预备主密钥后,使用自己的私钥进行解密,获取预备主密钥。客户端和服务器使用两个随机数和预备主密钥作为输入,通过一系列安全算法计算出最终的对称加密密钥(用于对称加密通信)以及其他加密和认证所需的参数。服务器将这些信息发送给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值