关于HTTP与HTTPS协议的一些简单总结

什么是协议

网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者“规则”,有了这种“约定”,不同厂商的生产设备,以及不同操作系统组成的计算机之间,就可以实现通讯。

 什么是http协议

HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTTP有多个版本,目前广泛使用的是HTTP/1.1版本。


HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件,、图片文件, 查询结果等。HTTP协议一般用于B/S架构。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

超文本:超越了普通文本的文本,它是文字、图片、视频等的混合体。超链接能使一个超文本跳转到另外一个超文本。

传输协议:就是两者或者多者之间传输发送东西,所需要遵循的一些规定与约束。

故HTTP 是一个在计算机世界里专门在两者或多者之间传输文字、图片、音频、视频等超文本数据的约定和规范。

关于http报文

请求报文:

 按照自上而下划分,划分为4个空间:

                   1.请求行:  [

                          Url: 请求地址(http://192.168.100.2:8080/index.html)

                          Method: 请求方法(post/get) 

(请求方法的类型比较多,有GET、POST、  HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT,其中GET、POST最为常用)

                          请求协议的版本号

                                   ]

                 2.请求头:  [

                         请求参数信息【get】

                      (由键/值对组成,每行一对,键和值用冒号“:”(英文)分隔  )

                                  ]

       

                3.  空白行:[

                                没有任何内容,起到隔离作用

                                ]  

                4.  请求体:[

                             请求参数信息【post】   (当使用的是GET方法的时候,没有请求体)。

                               ]     

响应报文:

 按照自上而下划分,划分为4个空间:             

       1. 状态行:  [

                               响应的协议和版本号

                                Http状态码

                                响应状态描述

                      ]

        2.响应头:[

                   响应参数信息

                      ]

        3..空白行:[

               没有任何内容,起到隔离作用

                      ]  

        4.响应体:[

              回传给客户端的数据:

              可能被访问静态资源文件内容

               可能被访问的静态资源文件命令

              可能被访问的动态资源文件运行结果

             ******都是以二进制形式*******

                       ]

关于POST与GET方法


 GET 和 POST 的区别?

1.都包含请求头请求行,post多了请求体。


2.get多用来查询,请求参数放在url中,不会对服务器上的内容产生作用。post用来提交,请求参数放在requestbody中,如把账号密码放入body中。


3.GET是将参数直接添加到URL后面的,直接就可以在URL中看到内容,而POST是放在报文内部的,用户无法直接看到。


4.GET提交的数据长度是有限制的,因为URL长度有限制,具体的长度限制视浏览器而定。而POST没有。
 

常见响应状态码

1xx
属于提示信息,是协议处理中的一种中间状态,实际用到的比较少。


2xx
表示服务器成功处理了客户端的请求,也是我们最愿意看到的状态。
「200 OK」是最常见的成功状态码,表示一切正常。如果是非 HEAD 请求,服务器返回的响应头都会有 body 数据。
「204 No Content」也是常见的成功状态码,与 200 OK 基本相同,但响应头没有 body 数据。
「206 Partial Content」是应用于 HTTP 分块下载或断电续传,表示响应返回的 body 数据并不是资源的全部,而是其中的一部分,也是服务器处理成功的状态。


3xx
表示客户端请求的资源发送了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向。
「301 Moved Permanently」表示永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。
「302 Moved Permanently」表示临时重定向,说明请求的资源还在,但暂时需要用另一个 URL 来访问。
301 和 302 都会在响应头里使用字段 Location,指明后续要跳转的 URL,浏览器会自动重定向新的 URL。

4xx
表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义。
「400 Bad Request」表示客户端请求的报文有错误,但只是个笼统的错误。
「403 Forbidden」表示服务器禁止访问资源,并不是客户端的请求出错。
「404 Not Found」表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端。


5xx
表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。
「500 Internal Server Error」与 400 类型,是个笼统通用的错误码,服务器发生了什么错误,我们并不知道。
「501 Not Implemented」表示客户端请求的功能还不支持,类似“即将开业,敬请期待”的意思。
「502 Bad Gateway」通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误。
「503 Service Unavailable」表示服务器当前很忙,暂时无法响应服务器,类似“网络服务正忙,请稍后重试”的意思

http优缺点

优点:
1. 简单
HTTP 基本的报文格式就是 header + body,头部信息也是 key-value 简单文本的形式,易于理解,降低了学习和使用的门槛。
2. 灵活和易于扩展
HTTP协议里的各类请求方法、URI/URL、状态码、头字段等每个组成要求都没有被固定死,都允许开发人员自定义和扩充。
3. 应用广泛和跨平台
互联网发展至今,HTTP 的应用范围非常的广泛,从台式机的浏览器到手机上的各种 APP,从看新闻、刷贴吧到购物、理财,HTTP 的应用遍地开花,同时天然具有跨平台的优越性。


缺点:
      安全性相当差。

什么是https

首先,HTTP 由于是明文传输,所以安全上存在以下三个风险:

  • 请求信息明文传递,容易被窃听截取。
  • 数据的完整性未校验,容易被篡改。
  • 没有验证对方信息,存在冒险危险。

为了解决如上问题,就有了HTTPS(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。即HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议(保证通信安全的协议)。

HTTP 与 HTTPS 的对比

  1. HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
  2. HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
  3. HTTP 的端口号是 80,HTTPS 的端口号是 443。
  4. HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值