zoukankan      html  css  js  c++  java
  • 了解http

    了解http

    都是很浅显的基础知识,开发中常常会遇到

    每个 HTTP 传输都要依次经过应用层、传输层、网络层、链路层、(传输目标的)链路层、(传输目标的)网络层、(传输目标的)传输层和(传输目标的)的应用层。

    TCP协议依赖3次握手,完成链接,采用三次握手是为了保证数据的可靠和完整性。
    TCP同样有4次挥手用于断开链接,客户端和服务器都可以主动执行。

    http 即 超文本传输协议,主要有request和response

    其中,requset消息内容如下:

    1. 报文首部,起始行为请求行,包括方法和协议类型(如GET/HTTP/1.1) 然后是各种非必需的首部字段(如Host、userAgent)
    2. 请求实体,并非必需
    3. CR + LF

    response 如下:

    1. 报文首部,起始行为状态行包括http协议版本号,响应状态码,和响应状态消息
    2. CR + LF
    3. 报文主体
    • 200 ok: 最常见的就是成功响应状态码200了, 这表明该请求被成功地完成,所请求的资源发送回客户端。上面打开项目主页的实例中就是200
    • 304 not modified: 假如我们打开主页后在浏览器中刷新,就会看到响应的状态码变成了304,这代表之前响应的html文档已经被缓存了,服务器端相同的文档没有变化,可以继续使用缓存的文档,因此304响应没有response body部分
    • 302 found: 重定向,新的URL会在response header中的Location中返回,浏览器将会自动使用新的URL发出新的Request,假如我们在登录页提交登录表单发送一个POST请求进行登录,就会得到一个302响应并且重定向到/index路径下
    • 404 not found: 请求资源不存在(输错了URL,或者服务器端现在没有这个页面了)
    • 500 Internal Server Error: 服务器发生了不可预期的错误,这个一般在会在服务器的程序码出错时发生。

    https 和 http

    在HTTP(应用层) 和TCP(传输层)之间插入一个SSL协议,就变成https了。

    https 是安全超文本传输协议,比http多了个secure,通过TLS(SSL)加密,这个的基本原理使使用RSA密钥的公钥、私钥加密。

    http默认使80端口,https默认443端口。

    HTTP/2.0 和 HTTP/1.x

    HTTP/1.1协议下,浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞。

    但是HTTP/2.0有多路复用,允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。这也是很多大公司拥有多个静态cdn的原因,在资源加载的时候会提高很多效率。

    QUIC

    这是google开发的一种实验性的传输层网络传输协议。QUIC使用UDP协议,它在两个端点间创建连接,且支持多路复用连接

  • 相关阅读:
    jQuery serialize()方法无法获取表单数据
    gorm 零值不更新问题
    SpringCloud Nacos使用和配置,SpringCloud Nacos 服务注册中心配置使用
    Nacos longPolling error,Nacos1.4.1服务配置文件更新一次后报错
    Windows Mysql5.7安装和配置,Windows 安装多个Mysql
    SpringCloud Gateway使用和配置,SpringCloud Gateway predicates详细配置
    Windows RabbitMQ_3.8 安装和配置,Windows erlang下载
    SpringCloud Hystrix dashboard2.2.7使用和配置,SpringCloud Hystrix dashboard服务监控
    SpringCloud Hystrix使用和配置,SpringCloud Hystrix服务熔断降级
    SpringCloud OpenFeign使用和配置,Java OpenFeign 使用教程
  • 原文地址:https://www.cnblogs.com/mydia/p/7055885.html
Copyright © 2011-2022 走看看