当前位置: 首页 > news >正文

HTTP--网络协议分层,http历史(二)

网络协议分层

只关心应用层里的http和传输层里的tcp

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

clipboard.png

http历史

http0.9

  1. 只有一个命令GET
  2. 没有header等描述数据的信息
  3. 服务器发送完毕,就关闭TCP连接

http1.0

  1. 增加了status,code和header
  2. 多字符集支,多部分发送,权限,缓存

http1.1

  1. 持久连接
  2. pipeline
  3. 增加host和其它一些命令

http2

  1. 所有数据以二进制传输
  2. 同一个连接里面发送多个请求不再需要按照顺序来
  3. 头信息压缩以及推送等提高效率的功能

http,tcp之间的关系

建立了tcp连接之后,http(用户就可以给服务器发送请求和服务器就可以响应了),可以多个http同时进行
clipboard.png

三次握手

clipboard.png

http报文

请求报文的起始行

http方法

  1. 用来定义对资源的操作
  2. 常用的有GET,POST,
  3. 从定义上讲各自的语义

clipboard.png

请求报文的起始行

  1. 定义服务器对请求的处理结果
  2. 各个 区间的code有各自的语义
  3. 好的http服务可以通过code判断结果

最简单的服务器

const http = require('http');
http.createServer(function (req, res) {
    console.log(req.url);
    res.end("hello world")
}).listen(8888)
console.log('server start at port 8888')

clipboard.png

相关文章:

  • Java编写基于netty的RPC框架
  • 使用python编写游戏修改器
  • 通过Eclipse 为java 项目生成Api 文档、JavaDoc
  • ios多个target
  • php去除html标签
  • 11月17日站立会议
  • angular搭建
  • 20172307 2018-2019-1 《程序设计与数据结构》第9周学习总结
  • .net core使用RPC方式进行高效的HTTP服务访问
  • 手机里删除的照片怎么恢复,如何恢复
  • Java并发编程之AQS
  • 浅谈常见的七种加密算法及实现
  • PHP消息队列学习
  • 实验05博客园总结
  • 华为S5700系列交换机配置通过Telnet登录设备
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • angular2 简述
  • centos安装java运行环境jdk+tomcat
  • echarts的各种常用效果展示
  • IP路由与转发
  • Laravel Telescope:优雅的应用调试工具
  • MySQL的数据类型
  • oldjun 检测网站的经验
  • 创建一个Struts2项目maven 方式
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 前言-如何学习区块链
  • 驱动程序原理
  • 如何优雅地使用 Sublime Text
  • 入手阿里云新服务器的部署NODE
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 跳前端坑前,先看看这个!!
  • 微信支付JSAPI,实测!终极方案
  • 应用生命周期终极 DevOps 工具包
  • 翻译 | The Principles of OOD 面向对象设计原则
  • #NOIP 2014# day.2 T2 寻找道路
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (数据结构)顺序表的定义
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (循环依赖问题)学习spring的第九天
  • (一)插入排序
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)菜鸟学数据库(三)——存储过程
  • .libPaths()设置包加载目录
  • .net Signalr 使用笔记
  • .NET6 命令行启动及发布单个Exe文件
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET大文件上传知识整理
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • [ C++ ] STL---仿函数与priority_queue