HTTP协议和HTTPS协议

HTTP协议

1、什么是HTTP

HTTP(超文本传输协议)是一个简单的请求—响应协议,它通常基于TCP之上

2、两个时代

  • http1.0:客户端与web服务器建立连接后,只能获取一个web资源。
  • http2.0:客户端和web服务器建立连接后,可以获取多个web资源。

3、Http请求

3.1、Http请求包括的内容

  • 客户端连接到服务器后,向服务器请求某个web资源,称为客户端向服务器发送了一个请求。
  • 一个完整的Http请求包括以下内容:一个请求头、多个请求内容、以及实体内容
    在这里插入图片描述

3.2 请求行

  • 请求中的请求方式:GET、POST
  • GET、POST的区别
    GET:一次请求能包含的参数比较少、大小有限制、会在浏览器的URL地址栏显示数据,不安全、但高效
    POST:一次请求能够包含的参数多、大小没有限制、不会在浏览器的URL地址栏显示数据、安全、但不高效
    在这里插入图片描述

3.3消息头

HTTP请求中的常用消息头

  • Accept:浏览器通过这个头告诉服务器,它所支持的数据类型
  • Accept-Charset:浏览器通过这个这个头告诉服务器,它支持那种字符集
  • Accept-Encoding:浏览器通过这个头告诉服务器,它支持的编码格式
  • Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
  • Host:浏览器通过这个头告诉服务器,想访问哪台主机
  • Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来
  • If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间的 防盗链
  • Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是保持链接

4.Http响应

4.1、Http响应包括的内容

一个Http响应代表服务器向客户端回送的数据,它包括:一个状态头、若干个消息头、以及实体内容
在这里插入图片描述

4.2 状态行

  • 首行:[版本号]+[状态码]+[状态码解释]

  • 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:
    在这里插入图片描述常见状态码:

  • 1XX 服务器收客户端的消息,但没有接受完成,等待一段时间后,就会发送1XX状态码

  • 200 OK - 客户端请求成功

  • 301 - 资源(网页等)被永久转移到其它URL

  • 302 - 重定向

  • 304 访问缓存

  • 400 客户端请求有语法错误,不能被服务器所理解

  • 401 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

  • 404 请求资源不存在,可能是输入了错误的URL

  • 405 请求方式没有对应的doXXX方法

  • 500 服务器内部发生了不可预期的错误

  • 503 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

    4.3常用响应头

    HTTP响应中的常用响应头(消息头):

    • Location:服务器通过这个头,告诉浏览器跳到哪里
    • Server:服务器通过这个头,告诉浏览器服务器的型号
    • Content-Encoding:服务器通过这个头,告诉浏览器,数据的编码格式
    • Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
    • Content-Language: 服务器通过这个头,告诉浏览器语言环境
    • Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
    • Refresh:服务器通过这个头,告诉浏览器定时刷新
    • Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
    • Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
    • Expires: -1 控制浏览器不要缓存
    • Cache-Control: no-cache 缓存控制
    • Pragma: no-cache

5.HTTP的特点

1、支持客户/服务器模式。(C/S模式)
2、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4、无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5、.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快

6.HTTP工作流程

1、建立TCP/IP连接,客户端与服务器通过Socket三次握手进行连接
2、客户端向服务端发起HTTP请求(例如:POST/login.html http/1.1)
3、客户端发送请求头信息,请求内容,最后会发送一空白行,标示客户端请求完毕
4、服务器做出应答,表示对于客户端请求的应答,例如:HTTP/1.1 200 OK
5、服务器向客户端发送应答头信息
6、服务器向客户端发送请求头信息后,也会发送一空白行,标示应答头信息发送完毕,接着就以Content-type要求的数据格式发送数据给客户端
7、服务端关闭TCP连接,如果服务器或者客户端增Connection:keep-alive就表示客户端与服务器端继续保存连接,在下次请求时可以继续使用这次的连接

7.HTTP和HTTPS的区别

1、Http协议需要到ac申请证书,一般免费的证书比较少,因而需要一定的费用
2、http是超文本传输协议,信息是明文传输的,https是具有安全s性的ssl加密传输协议
3、http和https使用的是完全不同的链接方式,用的端口号不同,http是80,https是443
4、http的链接是十分简单的,是无状态的;https协议是由ssl+HTTP协议构建的可进行加密传输、身份认证的网络协议、比http安全
5、 HTTPS基于传输层,HTTP基于应用层;

8.HTTPS特点

HTTPS是HTTP协议的修改,它加密数据并确保其机密性。其配置可保护用户在与网站交互时免于窃取个人信息和计费数据。
1、优点:
相比于http,https可以提供更加优质保密的信息,保证了用户数据的安全性,此外https同时也一定程度上保护了服务端,使用恶意攻击和伪装数据的成本大大提高。

2、缺点:

  • https的技术门槛较高,多数个人或者私人网站难以支撑,CA机构颁发的证书都是需要年费的,此外对接Https协议也需要额外的技术支持
  • 目前来说大多数网站并不关心数据的安全性和保密性,其https最大的优点对它来说并不适用
  • https加重了服务端的负担,相比于http其需要更多的资源来支撑,同时也降低了用户的访问速度
  • 目前来说Http网站仍然大规模使用,在浏览器侧也没有特别大的差别,很多用户不关心的话根本不感知。

9.HTTPS工作流程

1、客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
2、Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
3、客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
4、客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
5、Web服务器利用自己的私钥解密出会话密钥。
6、Web服务器利用会话密钥加密与客户端之间的通信。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值