简单了解HTTP协议与HTTPS协议

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

编程实现人脸识别需要基于人工智能平台基于HTTP协议通讯顺便简单了解HTTP协议相关的周边也是在为面试做准备。

本文为学习笔记根据需要摘抄自下篇文章

参考原文地址
作者冬冬他哥哥

目录

HTTP协议

一、http协议的特性

二、http协议的请求请求行、请求头、请求体

请求行

GET请求

POST 请求

两个请求的区别

请求头

请求主体

三、http的协议响应:响应行、响应头、响应体 

响应行

响应头

响应主体

HTTPS协议

一、简介与原理

二、密码学基础对称加密和非对称加密

明文与密文

密钥

对称加密

非对称加密

三、HTTPS相对于HTTP优缺点

优点正确率更高安全性更强

缺点效率低成本高


HTTP协议

重点了解GET请求和=PORT请求以及他们的区别。

一、http协议的特性

http协议是建立在TCP/IP协议之上应用层协议默认端口为80或者8080

http协议的的特点是无状态无连接

无连接指的是不像socket服务器一样客户端与服务器一直保持连接而是例如你在百度进行搜索网页数据过来后连接就断开直到你下次继续搜索

二、http协议的请求请求行、请求头、请求体

利用抓包工具httpwatch可以获取报文多见于前端后端用于分析数据传输过程中产生的问题。

http协议的报文传输的是ASCII码在TCP/IP协议之上主要主要分为三部分请求行、请求头、请求主体

请求行

在第一行包含三个信息请求方式urlhttp协议版本

GET请求

例如

 GET /books/?sex=man&name=Professional HTTP/1.1
 Host: www.example.com
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
 Gecko/20050225 Firefox/1.0.1
 Connection: Keep-Alive

请求方式是GET请求url即为网址http协议版本是1.1

POST 请求

例如

 POST / HTTP/1.1
 Host: www.example.com
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
 Gecko/20050225 Firefox/1.0.1
 Content-Type: application/x-www-form-urlencoded
 Content-Length: 40
 Connection: Keep-Alive

 sex=man&name=Professional 

请求方式为POST请求url参数不可见协议版本是1.1

两个请求的区别

本质区别

GET产生一个TCP数据包POST产生两个TCP数据包。

对于GET方式的请求浏览器会把http header和data一并发送出去服务器响应200返回数据

而对于POST浏览器先发送header服务器响应100 continue浏览器再发送data服务器响应200 ok返回数据。

200是什么意思总结起来一句话以2开头的为成功以4开头的多为失败如常见的404.
详情跳转http协议中各个响应状态200_301_404_500等返回值含义快速一览

还有

1url可见性

get参数url可见

例如

var url = 'http://192.168.1.40:8080/v1/sea?page=1&per_page=10' + 'search=' + escape(str)

参数用&符号进行连接被当做参数的分隔符来进行处理。上面就两个参数。page=1per_page=10

posturl参数不可见

有参数但被隐藏起来了可以通过抓包查看这个参数。

2数据传输上

get通过拼接url进行传递参数

post通过body体传输参数

3缓存性

get请求是可以缓存的

post请求不可以缓存

4后退页面的反应

get请求页面后退时不产生影响

post请求页面后退时会重新提交请求

5传输数据的大小

get一般传输数据大小不超过2k-4k根据浏览器不同限制不一样但相差不大

post请求传输数据的大小根据php.ini 配置文件设定也可以无限大。

6安全性

这个也是最不好分析的原则上post肯定要比get安全毕竟传输参数时url不可见但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的对传递的参数进行加密其实都一样。

请求头

浏览器向服务器发送一些状态数据标识数据等等

一个信息一行包括信息名信息值 按行分隔

例如

User-Agent: firefox//表示发送请求的浏览器请求代理端是firefox
Host: shop.100.com//表示请求的主机域名基于域名的虚拟主机就是靠这个头判断的
Cookie:name=itcast//浏览器携带的cookie数据。
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive

注意请求头信息需要使用一个空行结束目前没搞懂

请求主体

请求代理端项服务器端发送的请求数据

典型的就是POST形式发送的表单数据

get请求没有请求主体部分get数据是在请求行中的url上进行传递的

三、http的协议响应:响应行、响应头、响应体 

HTTP/1.1 200 ok
Date: Tue19 Nov 2013 03:08:55 GMT
Server: Apache/2. 2.22 (Win32) PHP/5.3. 13
X- -Powered -By: PHP/5. 3.13
Content-Length: 16
Content- Type: text/html

响应行

响应行包括协议版本、状态码、状态消息

典型的

1xx:消息
2xx:成功
3xx:请求被重定向
4xx:浏览器端错误
5xx:服务器端错误

例如:

500 服务器内部错误
404 请求的页面没有找到
403 没有权限
200 请求成功

响应头

Content-Type: text/html 内容类型:告知浏览器接下来发送的响应主体数据是什么格式

Content-Length 响应主体数据的长度

Date响应的时间。GMT时间

响应主体

主要的响应数据在浏览器的主体区域显示的数据都是相应主体

注意每行包括相应行和响应头都需要一个 \r\n结尾

HTTPS协议

一、简介与原理

http协议是明文传输的因此很容易被截取和解析泄漏个人数据。https协议是在http和tcp之间多添加了一层进行身份验证和数据加密。

二、密码学基础对称加密和非对称加密

明文与密文

明文 明文指的是未被加密过的原始数据。
密文 明文被某种加密算法加密之后会变成密文从而确保原始数据的安全。密文也可以被解密得到原始的明文。

密钥

密钥密钥是一种参数它是在明文转换为密文或将密文转换为明文的算法中输入的参数。

密钥分为对称密钥与非对称密钥分别应用在对称加密和非对称加密上。

对称加密

对称加密对称加密又叫做私钥加密即信息的发送方和接收方使用同一个密钥去加密和解密数据。

对称加密的特点是算法公开、加密和解密速度快适合于对大数据量进行加密常见的对称加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。

其加密过程如下明文 + 加密算法 + 私钥 => 密文
解密过程如下 密文 + 解密算法 + 私钥 => 明文

对称加密中用到的密钥叫做私钥私钥表示个人私有的密钥即该密钥不能被泄露。

其加密过程中的私钥与解密过程中用到的私钥是同一个密钥这也是称加密之所以称之为“对称”的原因。

由于对称加密的算法是公开的所以一旦私钥被泄露那么密文就很容易被破解所以对称加密的缺点是密钥安全管理困难

非对称加密

非对称加密非对称加密也叫做公钥加密。

非对称加密使用一对密钥即公钥和私钥且二者成对出现。私钥被自己保存不能对外泄露。公钥指的是公共的密钥任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密用另一个进行解密。

1被公钥加密过的密文只能被私钥解密过程如下
明文 + 加密算法 + 公钥 => 密文 密文 + 解密算法 + 私钥 => 明文
2被私钥加密过的密文只能被公钥解密过程如下
明文 + 加密算法 + 私钥 => 密文 密文 + 解密算法 + 公钥 => 明文

由于加密和解密使用了两个不同的密钥这就是非对称加密“非对称”的原因。

非对称加密的缺点是加密和解密花费时间长、速度慢只适合对少量数据进行加密。

在非对称加密中使用的主要算法有RSA、Elgamal、Rabin、D-H、ECC椭圆曲线加密算法等。

三、HTTPS相对于HTTP优缺点

优点正确率更高安全性更强

使用 HTTPS 协议可认证用户和服务器确保数据发送到正确的客户机和服务器

HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议要比 HTTP 协议安全可防止数据在传输过程中不被窃取、改变确保数据的完整性 。

HTTPS 是现行架构下最安全的解决方案虽然不是绝对安全但它大幅增加了中间人攻击的成本 。

缺点效率低成本高

相同网络环境下HTTPS 协议会使页面的加载时间延长近 50%增加 10%到 20%的耗电。

HTTPS 协议还会影响缓存增加数据开销和功耗 。

HTTPS 协议的安全是有范围 中间人攻击 伪造证书

 

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6