一  本服务器实现的基本业务功能介绍

1    首先将服务器启动起来

2   在浏览器输入如下URL

3   就会进入世界时间查询系统的主页

4   比如,您想查询北京时间,那么就在输入框中输入北京,点击查询或者按下回车,系统会自动帮您查询。(查询结果如下),红线标注的部分,您可以进行一些地方特色的查询,一些美食,旅游攻略。

比如:若您想知道咱老北京有哪些美食,您可以点击,北京美食攻略(系统会为您自动查询)

比如,您出差英国伦敦,我们有伦敦美景导航

 以上是服务器目前拥有的简单基本功能,还需完善。

二     设计思路:

首先,基于TCP , socket api 搭建一个通用的http服务器,其核心流程为:

那么要解析http请求报文,并且要构造http响应报文,就要知道http报文格式,以下简单的罗列了http报文格式,具体格式请参考《unix网络编程》或者用费德勒抓包工具抓个包来研究一下:

其中,请求报文格式中的首行包括(方法(get或者post),URL,版本号),中间用空格隔开,那么解析的时候,就可以以空格来进行解析。header 是以键值对来存储,每个键值对以‘ :’来分割,body和header部分用空行隔开。

请求报文:

响应报文:

三    页面生成详解

对于页面的生成,分为静态页面和动态页面两种;对于get请求,并且没有query_string,我们则生成静态页面,如果有query_string,则根据query_string来生成不同的动态页面,那么对于post方法,,生成的一定是动态页面,根据body来生成动态页面。

对于动态页面的生成,我们采用了CGI 技术来实现,CGI最大的优点就是“解耦合”,并且可用任何编程语言来实现,但是cgi也有缺点:对于cgi技术,每个请求都必须创建一个子进程,对于创建子进程的开销我们也是知道的,所以用 cgi 写的服务器,对于处理高并发情况下的请求就会出现处理不过来的情况。

四 源码

  github链接:

https://github.com/superWangxinrui/hello-world/tree/master/%E4%B8%96%E7%95%8C%E6%97%B6%E9%97%B4%E6%9F%A5%E8%AF%A2%E7%B3%BB%E7%BB%9F

五 项目测试 

https://blog.csdn.net/superwangxinrui/article/details/81841766

世界时间查询服务器(一)相关推荐

  1. 如何查看服务器最后修改时间,查询服务器上所有数据库的最后更新时间

    我们可以通过以下语句查询单个数据库中所有表的创建日期.最后更新日期:select * from sys.tables 同时也可以通过以下语句查询服务器上所有在线的数据库:select * from s ...

  2. 为什么梦幻西游服务器名字有显示但是区名字没有了,梦幻西游开区时间查询

    查看最新开的区请查看 梦幻西游开区时间查询: 点击进入查询开区时间:然后输入区的名字就可以知道开区的时间了: 梦幻西游开了10多年了,出了几百个区,经过了不停的洗礼,不停的合老区,开新区,不停的转换, ...

  3. 我的世界 服务器内切换账号密码是多少,我的世界OP查询玩家账号密码 两种解决方式...

    我的世界OP查询玩家账号密码 两种解决方式.我的世界服务器中OP想要查询玩家账号登录密码也不是不可以的,但是一般需要插件协助才能完成.目前两种方式可以实现密码查询. 我的世界服务器OP怎么查询玩家密码 ...

  4. IBM、dell、hp、lenovo服务器故障报修、技术支持、服务器保修时间查询地址、电话...

    最近机房服务器硬件故障率有点高,经常需要查询服务器保修相关的信息.对相关资料做了一下统计,方便以后使用: 1:DELL 服务器 : PowerEdge 服务器: 服务时间:周一至周日全天 询服务电话: ...

  5. php mysql 时间戳查询_mysql中时间查询函数(包括时间戳)

    mysql中时间查询函数(包括时间戳) 这些函数都是MySQL自带的,可以直接使用在PHP写的MySQL查询语句中哦 1-CURDATE()或CURRENT_DATE()和CURTIME()或CURR ...

  6. 时间更新服务器推荐 - NTP时间同步服务器集群:ntp.api.bz

    时间更新服务,是微软操作系统windows中自带的一个和世界时间自动保持同步更新的服务,平常大家可能关注的不多,但有时候如果需要寻找准确时间的时候,避免去网站上搜索"格林尼治世界" ...

  7. 我的世界怎么设置服务器维护中,我的世界服务器

    发布时间:2016-08-26 我的世界游戏中我们会遇到关于服务器的问题,怎么对服务器进行重启呢?今天跟大家介绍的这款我的世界工具是一款比较实用的辅助,可以检测服务器状态,而且有查找问题和快速重启服务 ...

  8. 怎么修改服务器上的分数,教资成绩查询服务器爆了?这里有个小技巧教你!

    原标题:教资成绩查询服务器爆了?这里有个小技巧教你! 由于查询人数太多,服务器可能很卡,但我们可以采取另一种方法查到成绩,仔细看仔细学:我们不去查询成绩的页面,我们打开报名页面,点面试报名,可能会看到 ...

  9. 怎么卡我的世界服务器物品,我的世界怎么卡服务器物品 | 手游网游页游攻略大全...

    发布时间:2015-10-20 我的世界大版本已经更新到了1.8版本,最新版为我的世界1.8.8,很多朋友进入新版后想要联机,但没有找到合适的服务器,今天小编给大家带来的是我的世界1.8服务器地址大全 ...

最新文章

  1. Behave step matcher
  2. 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第8章-有输入时滞的二阶多智能体系统的多一致
  3. 删除表格数据后自动刷新_表格中一键即可删除重复数据,你居然还用逐条排查?...
  4. php禁止国外访问,wordpress 禁止国外ip访问
  5. qdialog 返回值_python-PyQt QDialog返回响应是或否
  6. 离线地图显示连接服务器未打开,如何在uwp中使用OSM离线地图?没有可用的互联网连接时出现问题...
  7. 实验9:Problem D: 从点到面
  8. 一个链表创建、反转、打印的C语言代码
  9. Markdown列表
  10. endnote一打开就自动关闭_【EndNote文献管理】5分钟快速上手Endnote
  11. Git1天打卡 day13-查看仓库文件改动状态
  12. yapi接口管理工具
  13. 工具善其事,必先被苦逼的其器所钝伤然后打磨之才能利其器
  14. 大脑--物质与意识之综合体,是物质有双重现象(物性与灵性)的实证
  15. hook系统调用(一):爬取MSDN官网上的API调用并改为自己的API(c++正则表达式的应用)
  16. PS色彩算法理解记录 1 Darken Lighten
  17. nand flash外部引脚相关描述
  18. Redis安装、配置与相关优化
  19. 电脑数据丢失如何恢复?
  20. MySQL——数据的操作(增,删,改,查)

热门文章

  1. 国际商务英语学习[十三]
  2. 当一个女生说她要减肥的时候
  3. 基于PHP+MySQL汽车查询系统的设计与实现
  4. 2012, PPSN,Geometric Semantic Genetic Programming,GSGP
  5. Jenkins的Blue Ocean是什么
  6. 鸟枪换炮,Android Studio的初体验——Android Studio系列(一)
  7. 程序物语(五):经营自己的程序生涯
  8. 京东到家开放平台网关系统设计实践
  9. SIM7600CE GNSS应用指南
  10. 注意!你的论文可能存在问题,论文引用失范的七大表现