HTTP和HTTPS
HTTP介绍
HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol
HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件、图片文件, 查询结果等。
HTTPS介绍
HTTPS是HTTP的安全版本,HTTPS中多出来的S是指SSL协议 (HTTPS=HTTP+SSL), SSL(Secure Sockets Layer 安全套接字协议),位于TCP/IP协议与各种应用层协议之间, 利用数据加密(Encryption)技术,确保数据在网络上的传输过程中不会被截取及窃听。
为什么使用HTTPS?
(1)HTTPS有助于在服务器和浏览器之间建立安全通信。
(2)验证网站的真实身份,区别于钓鱼欺诈网站。
(3)加密用户的敏感信息以确保安全, 从而提升用户对网站的信任。
HTTP和HTTPS区别
1、HTTP 和 HTTPS 连接方式不同,而且用的端口也不一样,前者端口号是80,后者是443。
2、HTTP 是超文本传输协议,属于明文传输协议,HTTPS 则是具有安全性的基于SSL加密的传输协议。
3、HTTP 是简单的无状态的连接。HTTPS 协议是由HTTP+SSL协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全。
HTTP是基于什么协议的?
TCP/IP
HTTP请求报文,响应报文中有什么内容?
请求报文构成
三个部分组成
1.请求行:
(1)请求的方法:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。
(2)URL:由 <协议>://<主机>:<端口>/<路径>?<参数> 组成
(3)协议版本:即 http 版本号。
2.首部行:用来说明浏览器、服务器或报文主体的一些信息。
3.实体主体:一般不用这个字段。
响应报文构成
和请求报文一样,也是三部分组成:
1.状态行:包含HTTP的版本,状态码,解释状态码的简单短语。
2.首部行:用来说明浏览器、服务器或报文主体的一些信息。
3.实体主体:一般不用这个字段。
状态码知识
状态码都是三位数字的,分为5大类:
1xx - 表示通知信息,如请求收到了或正在进行处理。
2xx - 表示成功,如接收或知道了。
3xx - 表示重定向,如要完成请求必须进行更进一步的操作。
4xx - 客户端错误,如请求中有语法错误或不能完成。
5xx - 服务器错误,如服务器失效无法完成请求。
下面三种状态行在响应报文中经常可见:
HTTP/1.1 200 Accepted -----接受
HTTP/1.1 400 Bag Request -----错误请求
HTTP/1.1 404 Not Found -----找不到
HTTP1.0/1.1/2.0 HTTPS的区别与特性
(1)HTTP/1.0 短链接(非持续链接),每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接
(2)HTTP/1.1 长链接(持续链接),所谓持续链接就是指万维网服务器在发送响应后仍然在一段时间内保持这条链接,使同一个客户(浏览器)和该服务器可以继续在这条链接上传送后续的Htpp请求和响应报文,缺点就是若干个请求排队串行化单线程处理,后面的请求等待前面请求的返回才能获得执行机会,一旦有某请求超时等,后续请求只能被阻塞,毫无办法,也就是人们常说的线头阻塞;
(3)2.0 多路复用 多个请求可同时在一个连接上并行执行。某个请求任务耗时严重,不会影响到其它连接的正常执行
《计算机网络》6.4.3超文本传输协议
http请求中get与post的区别?
(1) GET的参数通过URL传递,POST放在Request body中。
(2) 因为GET请求参数直接暴露在URL上,GET比POST更不安全,所以不能用来传递敏感信息。
(3) GET请求在URL中传送的参数是有长度限制的,而POST没有。
(4) GET请求只能进行url编码,而POST支持多种编码方式。
Https请求过程?
1.浏览器访问服务器,例如访问https://baidu 。
2.服务器返回GlobalSign认证证书,证明这个网站是百度,包含了服务器的公钥。
3.浏览器创建一个随机密钥,并且用服务器返回的公钥加密后返回给服务器。
4.服务器收到这个加密后的随机密钥后,用私钥解密。
5.达到一种状态就是全世界只有浏览器和这个服务器知道这个随机密钥是什么,然后用这个随机密钥对通信数据进行对称加密,因为对称加密对服务器的资源消耗很少。
https加密怎么做的?
非对称加密+对称加密
对称加密
加、解密使用的同是一串密钥,所以被称做对称加密。对称加密只有一个密钥作为私钥。 常见的对称加密算法:DES,AES等。
非对称加密
加、解密使用不同的密钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。反之,私钥加密的信息,只有公钥才能解密。 举个例子,你向某公司服务器请求公钥,服务器将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人才能对你的消息解密。与对称加密不同的是,公司服务器不需要将私钥通过网络发送出去,因此安全性大大提高。最常用的非对称加密算法:RSA