http server服务器(什么是http服务器)

本篇文章旨在从服务器后台开发的角度剖析一个简单的http服务器的运行原理.

我们知道浏览器是http(s)的客户端,目的是连接远程的http服务器,然后服务器返回浏览器数据.浏览器接收数据解析数据之后展现出来.我们看到的外在表现就是,浏览器访问一个url,然后就得到相应的web页面.

同样我们知道,浏览器与http服务器是通过http协议,传输层是tcp协议,因为他是有连接,可靠的协议.关于http协议简单的介绍一下:

一个标准的HTTP请求由以下几个部分组成

<request-line> <headers> <CRLF> [<request-body><CRLF>]

在HTTP请求中,第一行是请求行(request-line),用来说明请求类型、要访问的资源(URL)以及使用的HTTP版本;紧接着是多行头部(headers)信息,用来说明服务器要使用的附加信息;头部信息之后是一个回车换行符(\r\n),用于标明头部信息的结束。以上是必须内容,根据需要可在头部信息结束之后增加主体数据(request-body);

主体数据之后是一个回车换行符(\r\n),用于标明主体数据的结束。

例如,我们可以在IE浏览器上输入下面的网址:

http://localhost:8000/hello/index.html

HTTP请求的头部信息如下:

GET /hello/index.html HTTP/1.1 Accept: */* Accept-Language: zh-cn Accept-Encoding: gzip, deflate Host: localhost:8000 Connection: Keep-Alive Cookie: JSESSIONID=BBBA54D519F7A320A54211F0107F5EA6

收到请求数据之后,服务器解析,毕竟是明文字符,这个简单.然后服务器就知道了客户端的要求--获取目录hello/index.html文件.服务器读取文件内容发送给浏览器就好了.

后来随着业务逻辑越来越复杂,单单获取某个html文件功能早已不能满足需求,个性化需求呼之欲出.比如在线问卷调查表,他究竟是怎么把我们填写的数据传递给服务器的呢?

你可能会说那不是一样,客户端发送什么内容,服务器就接收什么内容.可是你想过没有,每个网站的需求是不一样的,本来服务器接收到浏览器的请求数据已经是够复杂的了,还让服务器来解析数据并响应不同的数据处理,这不太现实.

一般的,服务器最好只接收数据,如果让服务器也处理数据逻辑,势必会让服务器变得很复杂,稳定性也得不到保证.

另外一个角度是为了让程序复用,提高生产效率.也就是说,如果不关注业务逻辑,只注重接收数据,那么服务器程序可以给任何一个开发者使用.换句话说,我们不用从头开始写.直接使用现有的高性能的服务器就可以满足需求了.例如公司白领中午要吃饭,不可能跑回家自己去做饭吃,自己叫外卖就好了.

但是现实问题仍然没有解决,通过什么方式去处理业务逻辑呢?

你要给手机充电时,把插头插入插线板就能获取电了.插线板有接口,提供了电.

同理服务器程序最好也提供接口,浏览器通过统一的接口给服务器,然后我们从服务器接口中获取我们想要的数据.获取数据之后我们可以把数据交给第三方程序来处理逻辑,这样就做到与服务器业务分离了,good iead.

【文章福利】小编整理了一些学习资料、教学视频和学习路线图共享在群文件,资料包括《Andoird音视频开发必备手册 音视频最新学习视频 大厂面试真题 2022最新学习路线图 项目实战源码》等等(C/C ,Linux,FFmpeg ,webRTC, rtmp, hls, rtsp, ffplay, srs),免费分享,有需要的可以搜索788280672加群自取~希望对大家有帮助!

http server服务器(什么是http服务器)(1)

http server服务器(什么是http服务器)(2)

事实上,现在的http服务器就是这么做的,不过很复杂而已.下一篇开始为您介绍这些接口.

附录:HTTP Request Header 请求头

http server服务器(什么是http服务器)(3)

http server服务器(什么是http服务器)(4)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页