计算机网络(一)---HTTP与HTTPS

目录:

    一.HTTP

      1.超文本传输协议

      2.常见的状态码

      3.常见的字段

      4.GET和POST的区别

      5.HTTP的特性

      6.HTTP性能

      7.HTTP的演变

     二.HTTPS

       1.对称加密和非对称加密

       2.http的ssl握手

一.HTTP

1.超文本传输协议

HTTP是用于两点之间的传输协议。不止局限于互联网服务器到本地浏览器,也可以是服务器发送到另一台服务器

2.常见的状态码

  • 1xx Informational(信息状态码)接受请求正在处理     
  • 2xx Success(成功状态码) 请求正常处理完毕     
  • 3xx Redirection(重定向状态码) 需要附加操作已完成请求     
  • 4xx Client Error(客户端错误状态码) 服务器无法处理请求       
  • 5xx Server Error(服务器错误状态码) 服务器处理请求出错
304:
不具有跳转的含义,表示资源未修改,重定向已存在的缓冲文件,也称缓存重定向,用于缓存控制。

3.常见的字段

(1)host:

host文件一个没有扩展名的系统文件,其作用就是用来存储一些常用的网络域名和与其对应的ip地址,当用户输入一个需要登录的网址时,系统就会先去host文件中查找,如果找到了就立即打开该网址,如果找不到就去DNS域名解析服务器中查找。(可以理解为缓存)

(2)Content-Type

字段:字段用于服务器回应时,告诉客户端,本次数据是什么格式。

(3)Content-Encoding 字段

字段说明数据的压缩方法。表示服务器返回的数据使用了什么压缩格式

4.GET和POST的区别

(1)GET是请求资源

(2)POST是提交资源

(3)安全幂等;安全幂等是多次请求之后,请求方的资源会不会发生变化,可想而知,POST是不安全幂等的。

(4)get没有请求体body

计算机网络(一)---HTTP与HTTPS

 

 

 计算机网络(一)---HTTP与HTTPS

问:为什么head和body之间要加空行?
  这是一道开放题,可以畅所欲言。
  http是超文本传输协议,协议就是大家规定好的一个规范,这里加一个空行也是一个规范,它表示空行后面的就是实体。

 

 

 

 5.HTTP的特性

优点:

(1)简单

(2)易扩展

(3)应用广泛和跨平台

缺点:

明文传输和无状态

无状态的双刃剑:这里用cookie解决问题
无状态是指的,无登录状态,即服务器不知道某个用户是否已登录过了。因为愚蠢的服务器不知道客户端是否已登录过了,
所以每次都要在交互场景(会话)中请求中带上上一次的请求信息,如账号、密码。明明只需要在
/login接口中,才需要对
比数据库中的账号密码和客户端传的是否一致来确定合法性。这下在添加购物车中也需要再一次的进行同样的重复且没有必
要的操作,即降低了响应速度,又对用户不友好(因为每次都需要填账号,密码)。 缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另外人们常说的
“会话”概念则是上面的交互行为的另一种表述方式。

6.HTTP的性能

 

(1)长链接

没发送一次请求都需要经过三次握手,. HTTP/1.1 提出了长连接的通信方式,也叫持久连接。这种方式的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。

持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。

(2)管道网络传输

HTTP/1.1 采用了长连接的方式,这使得管道(pipeline)网络传输成为了可能。即可在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。

(3)队头阻塞

因为当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一同被阻塞了,会招致客户端一直请求不到数据,这也就是「队头阻塞」。好比上班的路上塞车

7.HTTP的演变

(1).http1.0 -->http1.1

长连接和管道通信(但会有队头阻塞)

(2)http1.1 -->http 2.0

头部压缩

不是按顺序发送

指定数据流的优先级,先响应优先级高的请求

增加了服务器推送(但丢包会导致重传)

(3)http2.0 --> http3.0

HTTP 下层的 TCP 协议改成了 UDP

UDP 发生是不管顺序,也不管丢包的,但是UDP是不可靠传输,但基于 UDP 的 QUIC 协议 可以实现类似 TCP 的可靠性传输。

二.HTTPS

1.对称加密和非对称加密

其实对称加密就是,用什么锁去加密,就用什么锁去解密,是比较单纯的形式,而非对称就是,公钥是去加密,而私钥是用来解密的。

但是权威证书机构是反着来的,私钥是用来加密,公钥是用来解密。

(各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥

在这里有一点不一样,证书颁发机构是用私钥去给客户端的钥匙加密,用公钥给证书解密)

2.https的ssl握手

 

计算机网络(一)---HTTP与HTTPS

上一篇:我们还需要学jQuery吗?


下一篇:创建web服务器