• Http协议基础及发展历史


    一、网络分层协议

    经典五层模型

    1、物理层:(电脑的硬件,网卡端口,网线,网线连出去的光缆)

    定义物理设备如何传输数据

    2、数据链路层

    在通信的实体间建立数据链路连接。

    两台机器物理上是可以连接在一起的,那同时要有配套的软件,通过物理的设备创建一个链路的连接。

    3、网络层

    为数据在节点之间传输创建逻辑链路

    如何我的电脑上访问百度服务器,我们如何去寻找百度这台服务器所在的地址。它就是一个逻辑关系,这个关系是在网络层创建的。

    4、传输层

    主要有两个协议 TCP/IP,UDP协议。TCP/IP是一个更可高的协议。

    传输层向用户提供可靠的端到端(End-to-End)服务。

    传输层向高处屏蔽了下层数据通信的细节。

    5、应用层

    为应用软件提供了很多服务

    构建于TCP协议之上

    屏蔽网络传输相关的细节。

    二、Http协议的发展历史

    1、Http/0.9 

    只有一个命令GET

    没有HEADER等描述数据的信息

    服务器发送完毕,就关闭TCP连接。

    TCP连接对应多个HTTP请求。

    2、Http/1.0

    增加了获得命令,如POST,PUT

    增加status code和header

    多字符集支持,多部分发送,权限,缓存等。

    3、Http/1.1

    持久连接

    pipeline(同一个连接发送多个请求,服务端是按顺序返回数据)

    增加host(在一台物理服务器,同时跑多个web服务,如node js的web服务,java的web服务)和其他一些命令

    4、Http/2

    所有的数据以二进制传输。(Http/1.1大部分的数据传输是字符串的)

    同一个连接里面发送多个请求不再需要按照顺序来。如同时返回第一个和第二个请求的数据。并行返回,提高了传输效率。

    头信息压缩及推送等提高效率的功能。

    推送:服务端主动发起数据传输,

    推送解决的问题如,web页面有html文本,css,js等内容。先加载解析html文本,在请求css和js文件。有了推送,服务端可以把CSS和JS主动推送到客户端。这样Html和CSS,JS的顺序是并行的,提高传输效率和性能。

    三、TCP三次握手

    四、URI,URL,URN

    1、URI:Uniform Resource Identifier 统一资源标志符。

    用来唯一标识互联网上的信息资源

    URI包含URL和URN

    2、URL: Unifrom Resource Locator 统一资源定位器

    如   http://user:pass@host.com:80/path?query=string#hash

          ftp://xxxx/yyy

    3、URN:永久统一资源定位符

    在资源移动之后还能被找到

    目前还没有非常成熟的使用方案

    五、Http报文样式

    1、Http方法

    用来定义对于资源的操作

    有GET,POST,PUT,DELETE

    2、HTTP CODE

    定义服务器对请求的处理结果

    各个区间的CODE有各自的语义

    HTTP 状态码的完整列表

    六、创建Web服务

    使用node创建

    查看node版本

    使用Visual Studio Code 创建server.js

    const http = require('http');
    
    http.createServer(function(request, response){
        console.log('request com', request.url)
    
        response.end('123')
    }).listen(8888);
    
    console.log('server listening on 8888')
    

      

    运行server.js

    然后通过浏览器访问

  • 相关阅读:
    2.8
    2.7
    2.6
    2.5
    2.4第三篇读后感
    2.2第一篇读后感
    2.1
    字符统计
    6468: Snuke's Coloring
    6463: Tak and Hotels II
  • 原文地址:https://www.cnblogs.com/linlf03/p/10462632.html
Copyright © 2020-2023  润新知