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协议,它在两个端点间创建连接,且支持多路复用连接

  • 相关阅读:
    关于隐藏UITabBarController和UINavigationController
    Google地图根据地址查询经纬度坐标
    领域驱动设计
    MFMessageComposeViewController
    关于什么时候使用NMock
    博客园现代化建设—[Entity Framework]在LINQ查询中指定返回的字段
    真相大白:为什么Entity Framework不能进行跨数据库查询(附解决方法)
    新问题新方法:在Entity Framework中实现指定字段更新
    分享我对领域驱动设计(DDD)的学习成果
    (转)js去空格
  • 原文地址:https://www.cnblogs.com/mydia/p/7055885.html
Copyright © 2011-2022 走看看