网络服务器开发实战(5)——多线程并发http服务器开发(1)——项目需求与http协议

声明:项目来自于《腾讯课堂动脑学院》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请求到服务器的请求消息包括以下格式:请求行、请求头部、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

网络服务器开发实战(5)——多线程并发http服务器开发(1)——项目需求与http协议_第1张图片

示例:

网络服务器开发实战(5)——多线程并发http服务器开发(1)——项目需求与http协议_第2张图片

解释:对照上述格式

请求行:

请求头部:

网络服务器开发实战(5)——多线程并发http服务器开发(1)——项目需求与http协议_第3张图片

请求数据:

此为可选项,这里无

服务响应

服务器响应客户端的HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文

网络服务器开发实战(5)——多线程并发http服务器开发(1)——项目需求与http协议_第4张图片

示例:

网络服务器开发实战(5)——多线程并发http服务器开发(1)——项目需求与http协议_第5张图片

解释:

状态行:

消息报头:

响应正文:
网络服务器开发实战(5)——多线程并发http服务器开发(1)——项目需求与http协议_第6张图片

3.项目流程图

网络服务器开发实战(5)——多线程并发http服务器开发(1)——项目需求与http协议_第7张图片

划分为上述三个模块

(1)接收http请求

  • 实现按行读取请求头部
  • 如果碰到两个连续的回车换行,即意味着请求头部结束

(2)解析http请求

 

(3)响应http请求

 

 

 

 

 

你可能感兴趣的:(后端必备计算机网络知识)