web程序工作原理
web程序大致可分为静态网站和动态网站,静态网站使用HTML语言编写,代码文件放在Web服务器,用户使用浏览器通过HTTP协议请求访问Web服务器上的Web页面,Web服务器将接收到的用户请求处理后,再发送给客户端浏览器,显示给用户。
动态网站包含了业务处理功能,内容需要根据用户请求动态生成页面信息,一般情况下通过数据库进行架构。
HTTP协议
而HTTP协议工作于客户端/服务端(C/S)架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
Web服务器有:Apache Tomcat服务器,IIS服务器(Internet Information Services)、Nginx,Lighttpd等。Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP请求响应步骤
1、客户端连接到Web服务器
一般通过浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
2、发送HTTP请求
通过TCP套接字(socket),客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
3、服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。
4、释放连接TCP连接
若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;
若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
5、客户端浏览器解析HTML内容
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。