HTTP协议的发展历史 HTTP/0.9 0.9版本是第一个定稿的HTTP版本,相对较为简陋.它有以下特点: 只有一个命令GET 没有header等描述数据的信息 服务器发送完毕,就关闭TCP连接 注意一点,0.9版本的HTTP协议只要服务器发送完毕,就直接关闭TCP连接,也就是说,一次TCP连接只能发送一次HTTP请求. HTTP/1.0 1.0版本在0.9版本上做出了很多创新和优化,该版本: 增加了新的命令(POST命令和HEADER命令) 增加status code(状态码)和header…
Erlang cowboy 入门参考之现代Web发展史 原文: http://ninenines.eu/docs/en/cowboy/1.0/guide/modern_web/ 让我回顾一下web技术的发展历史,并可预见一下未来的发展.除了HTTP/2.0这个还未正式纳入规范的技术,Cowboy与所有这些技术都是兼容的. 早期的Web 起初的HTTP就是用来对GET请求返回HTML页面的.最初的版本是HTTP/0.9.HTTP/1.0定义了GET,HEAD和POST方法,能通过POST请求发送数…
一.HTTP 0.9版本 1991年发布0.9版本,只有一个 GET 命令. 例如:GET /index.html   表示浏览器只能接收返回 html 格式的字符串:服务器发送完毕就关闭tcp链接. 缺点:数据格式太单一:每次建立TCP链接只能发送一个请求,由于TCP链接的建立和关闭需要三次握手和四次挥手,性能很差. 二.HTTP 1.0版本 1996年5月发布1.0版本,增加了以下内容: 1.任何格式的内容都可以发送,比如视频,音频文件等. 2.新加了 POST 和 HEAD 命令. 3.请…
摘要 安装npm,安装hexo相关依赖,安装主题stun 修改hexo配置,修改stun配置,部署到github,gitee实现静态访问 给博客加上全局搜索,访问量统计 hexo博客编写模板 tips: 以下{$xxx}均为用户自定义 搭建环境 创建仓库 1.github 仓库命名为:{$你的ID}.github.io 2.gitee 仓库命名为:{$你的ID} 仓库名大小写一致,访问路径也是 环境安装 1.安装npm https://nodejs.org/en/download/ 2.安装cn…
在上一次的文章中我们介绍了施耐德公司的协议modbus,这次我们把目标转向私有协议,来看看另一家巨头西门子的S7comm.首先要说明,这篇文章中的内容有笔者自己的探索,有大佬们的成果,但由于S7comm是私有协议,一些结论和看法不可能完全正确,希望各位有认为不对的地方或是更好的看法可以评论告诉我. ps:有些专业名词可能不对,因为没找到准确的翻译或者是根本没找到官方定义(毕竟是私有协议),笔者就自己起了名…… 建议阅读本篇前首先阅读:工控安全入门(一)—— Modbus协议 S7comm简介 西…
接上一篇:RocketMQ入门到入土(一)新手也能看懂的原理和实战! 一.事务消息的由来 1.案例 引用官方的购物案例: 小明购买一个100元的东西,账户扣款100元的同时需要保证在下游的积分系统给小明这个账号增加100积分.账号系统和积分系统是两个独立是系统,一个要减少100元,一个要增加100积分.如下图: 2.问题 账号服务扣款成功了,通知积分系统也成功了,但是积分增加的时候失败了,数据不一致了. 账号服务扣款成功了,但是通知积分系统失败了,所以积分不会增加,数据不一致了. 3.方案 Ro…
引言 24岁的某天,承载着周围人的关心,一路南下.天晴心静,听着斑马,不免对未来有些彷徨.但是呢,人生总要走陌生的路,看陌生的风景,所幸可以听着不变的歌,关心自己的人就那么多.就像是对庸常生活的一次越狱,路才刚刚开始.... - 2021.7.12 Qt5.14.2安装教程 步入公司,因需要学习Qt,本文主要整理为Qt的学习记录,从入门到入土,纯干货,尽可能详细. 一,Qt简介 Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开库,主要用来开发图形用户界面(Graphic…
摘要 我们使用的标准 C++,其设计的对象模型虽然已经提供了非常高效的 RTTI 支持,但是在某些方面还是不够灵活.比如在 GUI 编程方面,既需要高效的运行效率也需要强大的灵活性,诸如删除某窗口时可不想把子窗口用代码一个个去析构.Qt 将这两者的优点完美的结合在了一起,创造出了特有的对象模型(Qt Object Model). 一,Qt的基本框架 在上一篇中,我们已经完成了Qt的安装和VS的环境配置.QT从入门到入土(一)--Qt5.14.2安装教程和VS2019环境配置 - 唯有自己强大 -…
摘要 信号槽是 Qt 框架引以为豪的机制之一.所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号 (signal).这种发出是没有目的的,类似广播.如果有对象对这个信号感兴趣, 它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函 数(称为槽(slot))绑定来处理这个信号.也就是说,当信号发出时,被连接 的槽函数会自动被回调.这就类似观察者模式:当发生了感兴趣的事件,某一个 操作就会被自动触发.(这里提一句,Qt 的…
引言 在前面对Qt多线程(QThread)做了详细的分析:QT从入门到入土(四)--多线程(QThread) - 唯有自己强大 - 博客园 (cnblogs.com) 但是最近在做项目时候,要将一个函数单独运行在另一个线程中,并且这个函数是私有函数,用到的数据也是私有数据,不能通过其他类访问,这样怎么办?如何在Qt中的当前类创建线程? 最简单的多线程QtConcurrent::run() 其函数原型如下: QFuture<T> QtConcurrent::run(Function functi…