HTTP与HTTPS

目录

HTTP协议

请求

GET和POST的区别

HTTPS协议

SSL/TLS握手

http和https的区别

有了http为什么还要有https


HTTP协议

HTTP(超文本传输协议)是一种用于传输超媒体文档(例如HTML文件)的应用层协议。它是Web的基础,并且允许客户端和服务器之间进行通信。HTTP使用TCP作为其传输层协议,通常使用端口号80。当客户端想要请求Web页面时,它会发送一个HTTP请求到服务器。服务器会响应这个请求,并将所请求的资源发送回客户端。HTTP是一种无状态协议,这意味着服务器不会在请求之间保留任何数据。这使得HTTP非常适合Web浏览器的请求和响应模型。

请求

HTTP请求是客户端向服务器发送的一种格式化的消息。HTTP请求由三个部分组成:请求行、请求头和请求体。

请求行包含三个部分:请求方法、请求URI和HTTP协议版本。请求方法指的是客户端希望服务器执行的操作,例如GET、POST、PUT、DELETE等。请求URI指的是客户端请求的资源的标识符,例如http://www.example.com/index.html。HTTP协议版本指的是客户端使用的HTTP协议版本,例如HTTP/1.1。

请求头包含了一些附加的信息,例如客户端的浏览器信息、所支持的编码格式、所支持的语言等。请求头通常包含多个键值对,每个键值对之间使用冒号分隔,键值对之间使用换行符分隔。

请求体是可选的,它包含了客户端向服务器传输的数据。请求体通常用于POST请求,用于传输表单数据、JSON数据等。

以下是一个示例HTTP请求的格式:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

在这个示例中,请求行指定了使用GET方法请求/index.html资源,使用HTTP/1.1协议版本。请求头包含了Host、User-Agent、Accept、Accept-Encoding和Accept-Language等键值对。请求体为空,因为这是一个GET请求。

http协议有哪些方法

HTTP协议定义了多种请求方法,用于向服务器指定对资源的操作方式。常用的HTTP方法有以下几种:

  • GET:请求指定的页面信息,并返回实体主体。
  • HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。
  • POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT:向指定资源位置上传其最新内容,PUT方法是幂等的。即无论调用多少次,结果都是一样的。
  • DELETE:请求服务器删除指定的页面。
  • CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
  • OPTIONS:返回服务器支持的HTTP方法。
  • TRACE:回显服务器收到的请求,主要用于测试或诊断。
  • PATCH:用于对资源进行部分修改。

GET和POST的区别

GET和POST是HTTP协议中常用的两种请求方法,它们在传输数据的方式、安全性、缓存处理以及适用场景等方面有所不同。

1.数据传输方式:

GET请求将请求参数包含在URL中,而POST请求将请求参数包含在请求体中。因此,GET请求的请求参数可以在URL中看到,而POST请求的请求参数则不会在URL中显示。

2.安全性:

GET请求的安全性较低,因为请求参数可以在URL中看到,容易被中间人窃取、篡改或伪造。而POST请求将请求参数包含在请求体中,相对于GET请求来说更加安全可靠。

3.缓存处理:

GET请求可以被缓存,因为GET请求不会对服务器端的数据进行修改。而POST请求不能被缓存,因为POST请求可能会对服务器端的数据进行修改。

4.适用场景:

GET请求适用于获取数据的场景,例如查询、搜索等。因为GET请求的请求参数可以在URL中看到,可以方便地将请求的URL保存下来,方便下次使用。而POST请求适用于提交数据的场景,例如登录、注册、修改等。因为POST请求的请求参数包含在请求体中,相对于GET请求来说更加安全可靠。

总之,GET和POST请求各有优缺点,需要根据具体的场景和需求来选择使用哪种请求方法。

HTTPS协议

HTTPS(超文本传输安全协议)是一种安全的HTTP协议,它是在HTTP的基础上加入了SSL/TLS协议,通过使用加密算法对数据进行加密和解密,从而保证了数据的安全性和完整性。

HTTPS使用的加密算法包括对称加密和非对称加密。在HTTPS通信过程中,客户端和服务器之间会进行一次握手过程,其中包含了加密算法的协商、数字证书的验证等步骤。客户端和服务器在握手过程中会生成一些密钥,用于对数据进行加密和解密。这些密钥只有客户端和服务器知道,中间人无法窃取。

HTTPS相对于HTTP来说更加安全可靠,适用于需要保护数据安全的场景,例如网上银行、电子商务等。在使用HTTPS时,浏览器会在地址栏中显示一个锁形状的图标,以表示当前网站是通过HTTPS协议进行通信的。

HTTPS作用有两个:1.建立一种信息的安全通道 2.确认网站的真实性

SSL/TLS握手

HTTPS通信过程中的一次握手过程称为SSL/TLS握手,它包含了以下步骤:

  1. 客户端向服务器发送一个Client Hello消息,其中包含了客户端支持的加密算法、SSL/TLS协议版本等信息。

  2. 服务器向客户端发送一个Server Hello消息,其中包含了服务器选择的加密算法、SSL/TLS协议版本等信息。

  3. 服务器向客户端发送一个数字证书,用于验证服务器的身份。数字证书中包含了服务器的公钥和一些其他信息。

  4. 客户端验证服务器的数字证书,包括证书的颁发机构、有效期等信息。如果验证通过,客户端会生成一个随机数,并使用服务器的公钥对其进行加密,然后将加密后的随机数发送给服务器。

  5. 服务器使用自己的私钥对客户端发送的随机数进行解密,然后使用该随机数生成对称密钥。服务器将生成的对称密钥发送给客户端,并使用该对称密钥对

http和https的区别

HTTP和HTTPS是两种不同的协议,它们在以下方面有所不同:

1.数据传输方式:

HTTP是明文传输数据的协议,而HTTPS是加密传输数据的协议。HTTP将请求参数和响应结果都以明文的形式传输,容易被中间人窃取、篡改或伪造。而HTTPS在HTTP的基础上加入了SSL/TLS协议,通过使用加密算法对数据进行加密和解密,从而保证了数据的安全性和完整性。

2.端口号:

HTTP的默认端口号是80,而HTTPS的默认端口号是443。因此,当你在浏览器中输入一个网址时,如果是以http://开头,则浏览器会默认使用HTTP协议进行通信;如果是以https://开头,则浏览器会默认使用HTTPS协议进行通信。

3.安全性:

HTTP的安全性较低,因为请求参数和响应结果都是以明文的形式传输,容易被中间人窃取、篡改或伪造。而HTTPS使用加密算法对数据进行加密和解密,从而保证了数据的安全性和完整性。

4.缓存处理:

HTTP请求可以被缓存,因为HTTP请求不会对服务器端的数据进行修改。而HTTPS请求不能被缓存,因为HTTPS请求可能会对服务器端的数据进行修改。

5.证书验证:

HTTPS使用数字证书来验证服务器的身份,可以防止网站被篡改,保证了用户访问的是真实的网站。而HTTP没有数字证书验证机制,容易被攻击者伪造。

总之,HTTPS相对于HTTP来说更加安全可靠,适用于需要保护数据安全的场景,例如网上银行、电子商务等。

有了http为什么还要有https

HTTP协议是一种明文传输数据的协议,这意味着通过HTTP传输的数据可以被中间人窃取、篡改或者伪造。例如,当你在公共Wi-Fi上访问网站时,黑客可以通过窃取你的网络通信数据,获取你的账号密码等敏感信息。

为了保护数据的安全性和完整性,HTTPS协议应运而生。HTTPS是在HTTP的基础上加入了SSL/TLS协议,通过使用加密算法对数据进行加密和解密,从而保证了数据的安全性和完整性。HTTPS使用的加密算法包括对称加密和非对称加密,这些加密算法可以有效地防止中间人攻击和数据泄露。

另外,HTTPS还可以防止网站被篡改。例如,黑客可以通过中间人攻击将网站的内容篡改成恶意代码,从而对用户造成损害。而HTTPS使用数字证书来验证服务器的身份,可以防止网站被篡改,保证了用户访问的是真实的网站。

总之,HTTPS相对于HTTP来说更加安全可靠,适用于需要保护数据安全的场景,例如网上银行、电子商务等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值