GET和POST的区别

  • GET一般用来从服务器上获取资源,POST一般用来更新服务器上的资源
  • GET不会改变服务器上的资源,而POST会对服务器资源进行改变
  • GET请求的数据会附在URL之后,会将请求数据放置在HTTP报文的请求头中,以?分割URL和传输数据,参数之间以&相连。而POST请求会把提交的数据放置在HTTP请求报文的请求体中
  • POST的安全性要比GET的安全性高,因为GET请求提交的数据将明文出现在URL上,而且POST请求参数则被包装到请求体中,相对更安全
  • GET请求的长度受限于浏览器或服务器对URL长度的限制,允许发送的数据量比较小,而POST请求则是没有大小限制的
  • 本质上没有任何区别,只跟http协议本身有关

    数据请求的方法

    计算机网络 - 图1
    1、OPTIONS —- 啊铺神思
    返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
    2、HEAD
    向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
    3、GET
    向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url
    4、POST
    向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
    5、PUT
    向指定资源位置上传其最新内容
    6、DELETE —- 得类特
    请求服务器删除Request-URL所标识的资源
    7、TRACE —- 特瑞斯
    回显服务器收到的请求,主要用于测试或诊断
    8、CONNECT —- 肯耐科特
    HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    注意:
    1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501(Not Implemented)。
    2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。

    http和https的区别:

    http端口是80,信息是明文传输,连接是无状态的
    https端口是443,需要ca证书,成本更高,是由HTTP + SSL安全加密传输,更安全
    计算机网络 - 图2

    HTTP和HTTPS的基本概念
    1、HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
    2、HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
    3、HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。


HTTP 的安全风险
1、隐私泄露
由于 HTTP 本身是明文传输,用户和服务端之间的传输内容都能被中间者查看。也就是说 你在网上搜索、购物、访问的网点、点击的页面等信息,都可以被「中间人」获取。
2、页面劫持
隐私泄露的风险比较隐蔽,用户基本感知不到。但另外一类劫持的影响就非常明显非常直接了——页面劫持,也就是直接篡改用户的浏览页面。


HTTP劫持分类
根据劫持路径分类:DNS 劫持、客户端劫持、链路劫持。
如图
计算机网络 - 图3


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


HTTPS的优点
1、身份认证
使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器
计算机网络 - 图5

2、内容加密——防窃听
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取。
3、一致性校验——防篡改
通过对数据和共享密钥的 MAC 码来防止中间者篡改消息内容,确保数据的一致性。
4、HTTPS网络传输安全系数相对较高,可以大幅增加中间人攻击的成本。


HTTPS的缺点
1、速度慢
(1)、网络耗时
由于协议的规定,必须要进行的网络传输。比如 SSL 完全握手,302 跳转等。HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电。
(2)、计算耗时
无论是客户端还是服务端,都需要进行对称加解密,协议解析,私钥计算,证书校验等计算,增加大量的计算时间。
2、HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;
3、成本较高
(1)、服务器成本
HTTPS 的私钥计算会导致服务端性能的急剧下降,甚至不到 HTTP 协议的十分之一,也就是说,如果 HTTP 的性能是 10000cps,HTTPS 的性能可能只有几百 cps,会增加数倍甚至数十倍的服务器成本。
(2)、证书成本
根据证书个数及证书类型,一年可能需要花费几百到几百万不等的证书成本。
(3)、开发和运维成本
HTTPS 协议比较复杂,包括协议的配置,证书的更新,过期监控,客户端的兼容等一系列问题都需要具备专业背景的技术人员跟进处理。


HTTPS和HTTP的主要区别
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
【注】转载于https://mp.weixin.qq.com/s/UE7Zw0aSbxLuFFSraSUIOQ

网络传输协议:

协议就是规则,是数据在网络中传输的规则
http:超文本传输协议
http和https协议,基于TCP协议实现的

TCP:面向连接协议

必须按照下述步骤传输:
1.建立连接 通过三次握手,为了证明客户端的发送能力和服务器端的接收能力都是正常的
2.传输数据
3.断开连接 通过四次挥手
步骤:
1.建立TCP连接
2.浏览器向服务端发送请求命令
3.浏览器发送请求头信息
4.服务器应答
5.服务器发送应答头信息
6.服务器向浏览器发送数据
7.服务器关闭TCP连接
特点:
1.准确度高
2.安全
缺点:
1.慢
2.成本高

UDP:无连接协议

特点:
1.及时性高
缺点:
1.不安全
2.准确度低,会掉包
【直播、视频通信、语言….】

HTTP状态码

  • 100 - 用来通知客户端,部分的请求,服务器端已经接受,客户端继续发送剩余请求
  • 200 - 服务器请求成功,将返回结果
  • 202 - 服务器接收请求,但没有处理,最终会不会处理不确定
  • 204 - 服务器成功处理,但是没有返回内容
  • 301 - 永久重定向
  • 302 - 临时重定向
  • 404 - 请求失败
  • 500 - 服务器错误
  • 503 - 服务器过载或者维护,无法接受请求

HTTP状态码分类

分类 分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

网络分层:

ISO 将网络分成7层
但实际的网络分层只分为5层(分层是虚拟概念)、
从下到上===>>
应用层 http —-ISO组织将其应用层分成了三层
传输层 tcp udp协议
网路层 ip
数据链路层 转成2进制
物理层 双绞线、光纤