[HTTP] HTTP协议基础及发展历史(你想要的资料全在这里)

网络协议分层

经典五层模型

低三层
  • 物理层
    • 主要作用是定义物理设备如何传输数据
  • 数据链路层
    • 在通信的实体间建立数据链路连接
  • 网络层
    • 为数据在结点之间传输创建逻辑链路
传输层
  • 向用户提供可靠的端到端(End-to-End)服务
  • 传输层向高层屏蔽了下层数据通信的细节
应用层
  • 为应用软件提供了很多服务
  • 构建于TCP协议之上
  • 屏蔽网络传输相关细节

http协议发展历史

HTTP/0.9
  • 只有一个命令GET
  • 没有HEADER等描述数据的信息
  • 服务器发送完毕,就关闭TCP连接
HTTP/1.0
  • 增加了很多命令
  • 增加status code和header
  • 多字符集支持、多部分发送、权限、缓存等
HTTP/1.1
  • 持久连接
  • pipeline
  • 增加host和其他一些命令
HTTP2
  • 所有数据以二进制传输
  • 同一个连接里面发送多个请求不再需要按照顺序来
  • 头信息压缩以及推送提高效率的功能

HTTP的三次握手

详解请参考次博客

首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。

Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。

URI、 URL、URN

详解请参考次博客

URI

Uniform Resource Identifier/统一资源标志符

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

URL

Uniform Resource Locator/统一资源定位器

http://user:pass@host.com:80/path?query=string#hash,此类格式的都叫做URL,比如ftp协议

URN
  • 永久统一资源定位符
  • 在资源移动之后还能被找到
  • 目前还没有非常成熟的使用方案

HTTP报文

HTTP方法
  • 用来定义对于资源的操作
  • 常用有GET、POST等
  • 从定义上讲有各自的语义
HTTP CODE
  • 定义服务器对请求的处理结果
  • 各个区间的CODE有各自的语义
  • 好的HTTP服务可以通过CODE判断结果

使用nodejs实现一个最简单的服务器

const http=require('http');
http.createServer(function (request,response){
    console.log('request come',request.url)
    response.end('666')
}).listen(8888)
console.log("server listen 8888")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值