关于专栏-------WebServer二三事

news/2024/7/5 6:47:05

Discord
  新学期的第一个月在忙碌的工作和学习中结束了,学期课不是很多,但是由于不仅要保证正常的上课,还得兼顾项目的进度和复习,总是感觉时间不太够用,有时觉得假如早半个学期接触编程就好了,也不会像现在一样捉襟见肘。
  想投实习,却发现自己基础比较薄弱,对于原理性的东西理解薄弱,看似什么都会,实则只知其表,不知其里。看着别人各种offer show 自己整个人也变得有点浮躁,博客也搁浅了好长一段时间。所以想通过这个专栏整理一下这个月所学的知识,同时也想以写博客的方式让自己沉静下来进入自己的节奏。
Discord

  该专栏的主要内容围绕我实现的一个简化版的WebServer展开。项目名为:LWebServer,意为用来学习服务器原理的项目。主要实现是一个类似于Tomcat的简化版Servlet容器,主要用到下面相关知识:

1)核心的知识为BIO,NIO,IO multiplexing,AIO四种IO模式,延伸为:

  • 高性能IO(Select,Poll,Epoll,IOCP)的原理和差异
  • 设计模式(Reactor,Proactor)

2)计算机网络相关知识,延伸为:

  • HTTP协议
  • 高性能网络编程,了解各个层次之间的协作

3)框架源码

  • Tomcat等一些框架的源码解析,因为项目的实现参照了一些框架源码
  • Spring框架的源码,Servlet,cookie,session,ServletContext等的实现

4)源码中的设计模式

5)多线程,并发编程

Discord
  可以看出涉及的知识较多,如何总结和归纳将知识连贯起来就变得非常重要,这正是我开启这个专栏的原因之一,还有就是学习是个不断总结书籍和博文的渐进过程,前期的理解可能不到位或者错失关键点,写博客也起到温故知新的效果。
  文章我会尽量把总结过程中参考文章链接给出来;
  希望自己能坚持把这个专栏的内容更新完。
  end

Discord

  • WebServer二三事(一)Socket编程说起
  • WebServer二三事(二)五种网络I/O模式、
  • 同步/异步,阻塞/非阻塞你真的理解了吗?

http://www.niftyadmin.cn/n/3242419.html

相关文章

实训C++语言设计——3*3矩阵转置函数

编写并测试3*3矩阵转置函数,并使用数组保存3*3矩阵。算法:先在主函数中定义一个二维数组,然后通过print函数来完成输出功能,这是通过喜欢来完成的,然后就是转置,转置时可以通过一个辅助数组来完成&#xff…

实训C++语言设计——两个字符串的连接

编程实现两个字符串的连接,要求使用字符数组保存字符串,不使用系统函数。算法:先在主函数中定义两个字符数组,字符数组的最后一个字符是0,把它当作循环的终止条件,先把一个指针指向第一个字符串的最后一个字…

博客后续在GitHub page更新

CSDN将不会再更新,最新博客请移步:Lin’s Blog

实训C++语言设计——定义一个类

定义一个类,它包含私有数据成员姓名,地址,城市,邮政编码,公有函数成员:构造函数完成初始化,一个函数完成数据成员的输出,另外一个函数完成修改名字的功能。算法:根据上述…

实训C++语言设计——继承与派生

目的:1学习定义和使用类的继承关系,定义派生类。 2熟悉不同继承方式下对基类成员的访问控制。 3学习利用虚基类解决二义性问题。 内容(算法、程序、步骤和方法):1.定义一个基类…

思想调试:为什么4核CPU上只有一个核在工作?

在一个内部的邮件列表里,有人问了这样一个问题:为什么我这4核CPU的电脑上,看起来只有一个核在工作,其他三个核好像都处于空闲状态?如果使用任务管理器设置每个进程的亲缘性(Affinity)设置为4核,则电脑应该会…

实训C++语言设计——STL链表、栈类、队列

目的&#xff1a;了解了链表的定义与实现,学会了其使用方法;了解了栈类的定义和实现,学会了其使用方法;了解了队列的定义和实现,学会其使用方式;了解了c标准模板库STL的使用方式. 内容 程序&#xff1a;//Lab9_2.cpp //linkedlist.h#include<malloc.h>#ifndef LI…

实训C++语言设计——数组元素的排序查找

掌握了对数组元素的排序的方法,学会了对数组元素的查找的方法,还学习到了C库实现查找和排序. 程序&#xff1a;//Lab10_2.cpp#include<iostream>#include<algorithm>using namespace std; void displayArray(int a[],int n){ cout<<endl<<"…