该webServer使用epoll+threadpool实现,支持GET、POST方法,并添加CGI进行数据计算并返回网页信息,可以解析返回html、picture、mp3、js、css等文件,可以实现稳定的运行。 使用c++编写。 源码请看我的Github。 流程简述 启动服务器,在浏览器输入服务器地址,将向服务器发送HTTP请求 服务器接收数据,新建任务,将任务添加到任务队列 从线程池中唤醒某线程,执行任务。若没有任务线程会处于wait状态;若任务过多,会存储在任务队列中,等待空闲线程来执行 某线程获得任务后,读取浏览器发送的请求信息,进行解析HTTP首部,根据对应的结果来进行相应的处理,返回信息,若文件不存在则返回404.html,若请求方法不存在则返回501错误信息。 若是POST,则需要调用CGI进行处理,并返回相应的信息。 任务结束后,需要进行delete,因为在主进程中,为避免任务未运行完便被析构,需要使用new来新建对象,为避免内存泄露,需要在任务结束后使用delete释放资源 继续阅读 >>


王良 18/07/28 16:45:42
前一段时间,创建Spring MVC可能遇到了一些创建失败以及不规范的情况,今天就来系统的总结一下正确的创建姿势。 在IntelliJ IDEA中点击new project,然后选择Spring–>Spring MVC,点击next 出现下载的页面表示顺利进行,等待完毕即可,否则删除重新创建 配置Tomcat,并设置热部署 增加添加其他框架,选择Maven框架,并在Maven添加所需依赖 将Maven中的依赖的包添加到项目中,双击Test下的Lib包,直到他们都被添加进去 在Java源文件夹创建配置文件和一个测试控制器,并在web文件夹下创建相应的jsp WebInit.java package FirstMVC.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class W 继续阅读 >>


李猛 18/05/21 11:59:47
源码地址:XiyouLinux Group 图书借阅平台 项目地址中包含了一份README,因此对于项目的介绍省去部分内容。这篇博客,主要讲述项目中各个模块的实现细节。 项目概述及成果 首先将本项目使用到技术罗列出来: 使用Spring + Spring MVC进行后台开发 使用Bootstrap和jQuery框架进行前端开发 使用自定义注解与自定义的JdbcRowMapper简化JdbcTemplate对数据库的操作 使用腾讯云的对象存储服务进行图书照片的远程存储 使用MD5加密算法对用户密码在后台进行加密存储 使用过滤器进行一个会话中的身份校验 手动从Spring容器中获取bean 数据库设计中的诸多细节… … 由于前端开发是由团队中的其他人在负责,在加上博主对前端这块并不了解,因此本篇博客并不讨论有关第二点技术实现上的细节。 本项目如README中所述,在后期还有许多需要进行优化的地方。如果你对本项目感兴趣,不妨在GitHub中将 继续阅读 >>


董恒毅 18/03/13 00:22:30
Maven是什么? Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。 在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。 Maven提供了开发人员的方式来管理: Builds Documentation Reporting Dependencies SCMs Releases Distribution mailing list 概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。 安装Maven 1. 下载 下载链接 建立一个Maven文件夹,把下载的文件解压到该文件夹,并在Maven中建立一个Lo 继续阅读 >>


李猛 18/03/06 17:46:48
Web应用程序基础知识 Web应用程序是由客户端与服务器端两部分组成。客户端基本是浏览器,服务器端是HTTP服务器,浏览器会请求服务器上放置的文件或资源。 关于HTML HTML是以标签的方式来定义文件结构,标签通常成对。 当浏览器从服务器取得这份HTML文件之后,就可以按照其中的结构等信息进行画面的绘制。 URL、URN、URI Uniform Resource Locator/Name/Identifier URL的主要目的是以文字方式来说明因特网上的资源如何取得。 主要格式为: <协议>:<特定协议部分> 协议指定了以哪种方式取得资源: ftp 文件传输协议 http 超文本传输协议 mailto 电子邮件 file 特定主机文件名 特定协议部分的格式: //<用户>:<密码>@<主机>:<端口号>/<路径> 关于HTTP HTTP是基于请求/响应的通信协议,架 继续阅读 >>


贺含悦 17/12/18 20:38:10
Web应用程序基础知识 Web应用程序是由客户端与服务器端两部分组成。客户端基本是浏览器,服务器端是HTTP服务器,浏览器会请求服务器上放置的文件或资源。 关于HTML HTML是以标签的方式来定义文件结构,标签通常成对。 当浏览器从服务器取得这份HTML文件之后,就可以按照其中的结构等信息进行画面的绘制。 URL、URN、URI Uniform Resource Locator/Name/Identifier URL的主要目的是以文字方式来说明因特网上的资源如何取得。 主要格式为: <协议>:<特定协议部分> 协议指定了以哪种方式取得资源: ftp 文件传输协议 http 超文本传输协议 mailto 电子邮件 file 特定主机文件名 特定协议部分的格式: //<用户>:<密码>@<主机>:<端口号>/<路径> 关于HTTP HTTP是基于请求/响应的通信协议,架 继续阅读 >>


贺含悦 17/12/18 20:38:10
socket.c文件 所有我自己的注释理解都是汉字,绝大部分前面都有zzy,是为了和原来作者的注释区分开 /* $Id: socket.c 1.1 1995/01/01 07:11:14 cthuang Exp $ * * This module has been modified by Radim Kolar for OS/2 emx */ /*********************************************************************** module: socket.c program: popclient SCCS ID: @(#)socket.c 1.5 4/1/94 programmer: Virginia Tech Computing Center compiler: DEC RISC C compiler (Ultrix 4.1) environment: 继续阅读 >>


朱紫钰 17/12/17 14:26:54
原文链接:聊一聊 cookie 作者:championhengyi 发表于 2017/12/04 17:45:03 原文链接 http://blog.csdn.net/championhengyi/article/details/78712027 阅读:104 继续阅读 >>


董恒毅 17/12/04 17:45:03
写在前面: 计划写一个Web 服务器,在小组的群博上没有找到相关的文章,自己打算从开始记录下这个过程,一是整理清楚我的构建过程,二是也能让后面的同学做一下参考。 CSAPP上网络编程那一章最后实现了一个小但是功能较齐全的Web 服务器,叫做TINY。因为只是知道HTTP协议的一些概念,还不太清楚一个Web服务器的工作流程和代码组织结构,而书上给出了 Tiny Server 的完整实现,代码非常短,只有几百行,所以自己模仿着手撸了一遍,并试着分析了代码,运行了一下,给自己一个直观的认识。源代码放在 这里,加注释的代码放在这里。接下来分析下这个Tiny Web服务器。 PS:WEB基础就不写了,自己了解下基本的概念,那么看起代码来就足够了。 CSAPP上面的例子用到的一些通用的函数都放在csapp.h头文件中,并在csapp.c中给出实现。我们看到的大写首字母开头的函数,是在原功能函数上面加上了错误处理,比如 pid_t Fork(void) { pid_t pid; 继续阅读 >>


杜肖孟 17/11/19 21:23:24
什么是缓存Cache? 为什么人们要使用它? 一个使用缓存Cache的站点会监听客户端向服务器端发出的请求,并保存服务器端的回应——比如HTML页面、图片等文件。接着,如果再次使用相同URL发送请求,他能够使用之前已经保存下来的反馈文件,而不是再次向服务器发出请求。 有两个主要的理由让人们使用缓存: 减少延迟 — 因为所发出的网页请求是指向更接近客户端的缓存而不再是源服务器端,因此请求所花费时间更短,这让网站看上去反应更快。 降低网络负荷 — 因为缓存文件可以重复使用,节省了不少的带宽.这也给用户省了不少流量. 缓存 Caches种类 浏览器缓存 Caches 浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires; Cache-control等)。 Expires策略(忽略) Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。 不过Expires是HTTP 1.0的东西,现在默认浏览器均默认使用 继续阅读 >>


董恒毅 17/11/01 11:46:48