声明:项目来自于《腾讯课堂动脑学院》Martin老师的《C++/C服务器端开发从入门到精通》免费课程,作为练习记录笔记于此
并发的理解:比如全国各地的用户同时去访问baidu.com,而每个用户无需关心是否有其他的用户在访问,大家的多个访问请求能被百度的服务器同时处理,即并行处理,而不是像排队一样串行处理,就叫做并发
1.项目需求
实现一个http 服务器项目,服务器启动后监听80端口的tcp 连接,当用户通过任意一款浏览器(IE、火狐和腾讯浏览器等,包括手机上的浏览器)访问我们的http服务器,
http服务器会查找用户访问的html页面是否存在,如果存在则通过http 协议响应客户端的请求,把页面返回给浏览器,浏览器显示html页面;
如果页面不存在,则按照http 协议的规定,通知浏览器此页面不存在(404 NOT FOUND)
2.需求分析
(1)何为html页面?
html,全称Hypertext Markup Language,也就是“超文本链接标示语言”。HTML文本是由 HTML命令组成的描述性文本,HTML 命令可以说明文字、图形、动画、声音、表格、链接等。 即平常上网所看到的的网页。浏览器负责解释HTML命令用 UI的方式呈现给我们
(2)何为http协议?
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
请求格式:
客户端请求
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行、请求头部、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
示例:
解释:对照上述格式
请求行:
请求头部:
请求数据:
此为可选项,这里无
服务端响应
服务器响应客户端的HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
示例:
解释:
状态行:
消息报头:
响应正文:
3.项目流程图
划分为上述三个模块