基础知识二:自己认识的HTTP协议

HTTP协议

 

HTTP协议简介:
HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。一个基于TCP/IP通信协议来传递数据的协议,处于OSI中应用层。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

HTPP有多个版本,目前广泛使用的是HTTP/1.1版本。

 

 

请求报文构成
请求行:包括请求方法、URL、协议/版本
请求头(Request Header):cookie,token信息等
请求正文:可以是json、xml等格式(Get方式没有)

 

常见请求方法

GET:请求指定的页面信息,并返回实体主体。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
POST请求可能会导致新的资源的建立和/或已有资源的修改。
HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
PUT:从客户端向服务器传送的数据取代指定的文档的内容。
DELETE:请求服务器删除指定的页面。

 

URL:

基础知识二:自己认识的HTTP协议_第1张图片

 

 

协议/版本:

就是一些版本信息

 

请求正文:

就是要提交的内容,可以是json、xml等格式

ps: post方式提交的数据必须放在正文里(即消息主体)

get带请求体是争议的地方,理论上可以带,一般不建议带

 

例子:

基础知识二:自己认识的HTTP协议_第2张图片

 

 

HTTP的响应体构成:

响应行

响应头

响应体

 

基础知识二:自己认识的HTTP协议_第3张图片

 

 

基本流程:

基础知识二:自己认识的HTTP协议_第4张图片

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协议_第5张图片

 

HTTP使用的是80端口,HTTPS使用443端口

 

注意:post的请求行也可以带参数,就是post带的内容可以放在请求体和请求行里面

后面再完善、待续

 

 

你可能感兴趣的:(计算机网络)