Web服务器概述
概述
Web服务器概念较为广泛,我们最常说的Web服务器指的是网站服务器,它是建立在Internet之上并且驻留在某种计
算机上的程序。Web服务器可以向Web客户端(如浏览器)提供文档或其他服务,只要是遵循HTTP协议而设计的网络应
用程序都可以是Web客户端。
Web服务器和HTTP服务器可以说是同一个东西,当然非得细分的话,HTTP服务器是建立在HTTP协议之上的提供文档
浏览的服务器,更多的是提供静态的文件。而Web服务器涵盖了HTTP服务器(这一点可以自行百度百科), Web服务器
不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。
(1) 用户做出了一个操作,可以是填写网址敲回车,可以是点击链接,可以是点击按键等,接着浏览器获取了该事件。
(2) 浏览器与对端服务程序建立TCP连接。
(3) 浏览器将用户的事件按照HTTP协议格式打包成一个数据包,其实质就是在待发送缓冲区中的一段有着 HTTP协议格式的字节流。
(4) 浏览器确认对端可写,并将该数据包推入Internet,该包经过网络最终递交到对端服务程序。
(5) 服务端程序拿到该数据包后,同样以HTTP协议格式解包,然后解析客户端的意图。
(6)服务程序解包后,确定其为GET(Post)请求,并且是对该服务器上的某一资源的请求。首先服务程序会去确认该路径是否存在,再确定该路径的文件是否可以获取。
(7) 将结果装入缓冲区,根据该文件类型进行不同的装载过程,记录其类型作为(8)中HTTP协议中对应的返回类型,并加入响应头
(8) 按照HTTP协议格式将(7)中的数据打包
(9) 服务器确认对端可写,并将该数据包推入Internet,该包经过网络最终递交到客户端。
(10) 浏览器拿到包后,以HTTP协议格式解包,然后解析数据,假设是HTML文件。
(11) 浏览器将HTML文件展示在页面
动态技术
Web服务器是以短连接为主,并且获取的数据到达浏览器的那一刻一定是静态的不变的。那么所谓动态实际是指两种情况
服务端产生:
(1) 用户POST提交数据到某个程序,程序根据该数据作为参数运行,得出结果并装入静态的模板页面中,返回该静态
页面。但对于用户来说,同一个页面,做了一个操作后数据不一样了。好了,这就是动态页面。(CGI原理)
(2) PHP的原理是,用户GET请求一个php后缀的文件,服务器先执行该php后缀文件中的PHP代码,将结果填入
代码的位置,再返回。当然也可以提交数据参与运算再返回。
客户端产生:
(1) 用户GET请求一个JavaScript文件,服务端不做任何运算返回该静态文件。浏览器收到该JS文件,在本地执行并
更新页面。
(2) 用户POST提交数据到服务端,服务端根据该提交的数据指令返回静态文件,浏览器收到后执行并更新。
————————————————
版权声明:本文为CSDN博主「青城山小和尚」的原创文章,转载。
原文链接:https://blog.csdn.net/qq_36359022/article/details/81666221
常见的web服务器
Tomcat: 最流行的服务器,Apache组织开源免费的服务器,支持JavaEE规范 .
JBoss: RedHat公司开源免费的服务器,支持JavaEE规范 .
Jetty: 开源免费的服务器,支持JavaEE规范.
Glass Fish: sun公司,开源免费的服务器,支持JavaEE规范 .
Weblogic : Oracle公司,收费服务器,支持JavaEE规范 .
WebSphere: IBM公司,收费服务器,支持JavaEE规范 .
HTTP协议
HTTP协议概述
HTTP介绍
(Hyper Text transfer protocol)超文本传输协议.
是web服务器向浏览器传输超文本的传送协议.它基于TCP/IP通信协议.
主要由请求和响应构成
HTTP工作原理
HTTP协议定义web客户端如何向web服务器请求网页,以及web服务器如何向web客户端响应网页.
http中请求与响应的工作步骤
1、客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
2、发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个请求报文,一个请求报文主要由请求行、请求头部、请求数据(请求体)
组成。
3、服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应报文主要由响应行、
响应头、响应数据(响应体)组成。
4、释放连接TCP连接
若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection模式
为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
5、客户端浏览器解析HTML内容
客户端浏览器首先解析响应状态行,查看表明请求是否成功的响应状态代码。然后解析每一个响应头,响应头告知
浏览器响应体内容的类型以及内容的字符集。客户端浏览器读取响应数据内容,并在浏览器窗口中显示给用户
Http请求响应结构
常见请求头
Host 请求的服务器的主机地址和端口
User-Agent 浏览器的信息
Accept 浏览器可以接收的数据类型
Accept-Language 浏览器可以处理的语言
Accept-Encoding 浏览器可以接收的数据压力类型
Referer 请求从哪个页面发起 可以实现防盗链
Connection 保持连接
Content-Type 提交的内容类型
Content-Length 请求的数据内容的字节大小
常见响应头
Content-Type 响应体内容的类型 取值
text/plain 纯文本内容
text/html hmtl内容
application/x-download 文件类型 常配合 Content-Disposition 使用
Content-Length 响应体内容的字节大小
Location 重定向的资源地址 配合302使用
refresh 定时刷新页面 取值 秒;url=网络地址
Content-Disposition 告诉浏览器响应体内容的处理方式 取值
inline 内联(默认) 把内容直接在浏览器中展示
attachment 附件 告诉浏览器提示用户下载文件