世界时间查询服务器(一)

编程入门 行业动态 更新时间:2024-10-22 15:38:29

世界时间查询<a href=https://www.elefans.com/category/jswz/34/1771423.html style=服务器(一)"/>

世界时间查询服务器(一)

 

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

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链接:

/%E4%B8%96%E7%95%8C%E6%97%B6%E9%97%B4%E6%9F%A5%E8%AF%A2%E7%B3%BB%E7%BB%9F

五 项目测试 

更多推荐

世界时间查询服务器(一)

本文发布于:2023-06-30 16:28:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/963083.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:服务器   时间   世界

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!