基础知识二:自己认识的HTTP协议
HTTP协议
HTTP协议简介:
HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。一个基于TCP/IP通信协议来传递数据的协议,处于OSI中应用层。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
HTPP有多个版本,目前广泛使用的是HTTP/1.1版本。
请求报文构成
请求行:包括请求方法、URL、协议/版本
请求头(Request Header):
请求正文:可以是json、xml等格式
常见请求方法
GET:请求指定的页面信息,并返回实体主体。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
POST请求可能会导致新的资源的建立和/或已有资源的修改。
HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
PUT:从客户端向服务器传送的数据取代指定的文档的内容。
DELETE:请求服务器删除指定的页面。
URL:
协议/版本:
就是一些版本信息
请求正文:
就是要提交的内容,可以是json、xml等格式
ps: post方式提交的数据必须放在正文里(即消息主体)
例子:
HTTP的响应体构成:
响应行
响应头
响应体
基本流程:
http中存在如下问题:
请求信息明文传输,容易被窃听截取
数据的完整性未校验,容易被篡改
没有验证对方身份,存在冒充危险
为了解决上述HTTP存在的问题,就用到了HTTPS。
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):
一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。、
HTTPS是HTTP协议的安全版本,http和https使用连接方式不同,默认端口也不一样,http是80,https是443。
HTTPS加密方式:
其实为了提高安全性和效率HTTPS结合了对称和非对称两种加密方式。
即客户端使用对称加密生成**(key)对传输数据进行加密,然后使用非对称加密的公钥再对key进行加密。
因此网络上传输的数据是被key加密的密文和用公钥加密后的密文key,因此即使被黑客截取,
由于没有私钥,无法获取到明文key,便无法获取到明文数据。所以HTTPS的加密方式是安全的。
HTTP使用的是80端口,HTTPS使用443端口
后面再完善、待续