Web服务器基础介绍

目录

Web服务器基础介绍

一、HTML是什么?

二、静态网页和动态网页

1、静态网页

2、动态网页

3、动态网页语言

PHP

JSP

Python

Ruby

三、HTTP协议

1、HTTP协议是什么?

2、HTTP请求访问的方法

3、GET与POST比较

GET:

POST:

4、HTTP状态码

5、HTTP请求访问的完整过程

6、请求报文

7、响应报文


Web服务器基础介绍

一、HTML是什么?

超文本标记语言,编程语言,主要负责实现页面的结构;HTML叫:超文本标记语言,是一种规范,也是一种标准,通过标记符号来标记要显示的网页中的各个部分。网页本身是一种文本文件,通过在文本文件中添加标记符号,可以告诉浏览器如何显示其中的内容。

HTML文件可以使用任何能够生成txt文件的文本编辑器来编辑,生成超文本标记语言文件,只用修改文件名后缀为html或者htm即可

二、静态网页和动态网页

1、静态网页

在网站设计中,纯粹HTML格式的网页通常被称为静态网页,静态网页标准的HTML文件,他的文件拓展名是.htm、.html。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态网页也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字幕等。这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。

2、动态网页

所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着HTML代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非是修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。动态网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。
动态网页是基本的html语法规范与Java、PHP、C#等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。

3、动态网页语言

早期的动态网页

主要采用通用网关接口 CGI(Common Gateway Interface)技术,虽然 CGI 技术已经发展成熟而且功能强大, 但由于编程困难、效率低下、修改复杂,所以有逐渐被新技术取代的趋势

PHP


即 Hypertext Preprocessor(超文本预处理器),它是当今 Internet 上最为火热的脚本语言,其语法借鉴了 C、Java、PERL 等语言,但只需要很少的编程知识你就能使用 PHP 建立一个真正交互的 Web 站点。

JSP


即 Java Server Pages(Java 服务器页面),它是由 Sun Microsystem 公司于 1999 年 6 月推出的新技术,是基于 Java Servlet 以及整个 Java 体系的 Web 开发技术。

Python


是一种面向对象、跨平台的动态类计算机程序设计语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的大型项目开发。

Ruby


是一种简单快捷的面向对象(面向对象程序设计)脚本语言,在 20 世纪 90年代由日本人松本行弘(Yukihiro Matsumoto) 开发,遵守GPL 协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。

三、HTTP协议

1、HTTP协议是什么?

HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。

服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。

注意:HTTP已经演化出了很多版本,他们中的大部分都是向下兼容的

HTTP/0.9:已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。
HTTP/1.0:这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。
HTTP/1.1:引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,能很好地配合代理服务器工作。还支持管道方式机制,即在同一个TCP连接里面,客户端可以同时发送多个请求,以便降低线路负载,提高传输速度。
HTTP/2.0:完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。引入了头信息压缩机制,使用gzip或compress压缩后再发送。支持服务端推送,允许服务器未经请求,主动向客户端发送资源。

2、HTTP请求访问的方法

HTTP支持几种不同的请求命令,这些命令都被称为HTTP方法

每条HTTP请求报文都包含一个方法,告诉服务器要执行什么动作,包括:获取一个页面,运行一个网关程序,删除一个文件等。

最常用的方法是GET、POST、PUT。

①GET           对服务器资源获取的简单请求

②PUT           向服务器提交数据,以修改数据

③DELETE    删除服务器上的某些资源

④POST        用于发送包含用户提交数据的请求

⑤HEAD        请求页面的首部,获取资源的元信息

GET请求会向数据库发索取数据的请求,从而来获取信息,该请求不会产生副作用。无论进行多少次操作,结果都是一样的

PUT请求是向服务器端发送数据的,从而改变信息,无论进行多少次PUT操作,其结果并没有不同,与GET不同

DELETE请求顾名思义,就是用来删除某一个资源的。

3、GET与POST比较

GET:

①从指定的服务器上获取数据

②请求可以被缓存

③请求会被保存在浏览器的浏览记录里

④请求有长度的限制

⑤主要用于获取数据

⑥查询的字符串不会显示在url后缀中,不安全

POST:

①提交数据给指定服务器处理

②请求不能被缓存

③请求不会保存在浏览器的浏览记录里

④请求没有长度限制

⑤查询的字符串不会显示url中比较安全

4、HTTP状态码

HTTP状态码是用来表示网页服务器HTTP响应状态的3位数字代码,当浏览器请求某一url时,服务器根据处理情况返回响应的处理状态。

状态码首位 已定义范围 分类
1xx 100-101     信息提示
2xx 200-206     成功
3xx 300-305     重定向
4xx 400-415 客户端错误
5xx 500-505 服务器错误

http常见状态码:

状态码    功能描述
200    一切正常
301    永久重定向,将缓存记录在浏览器中
302    临时重定向,没有缓存,每次都要重定向
401    用户名或密码错误
403    禁止访问(客户端IP地址被拒绝)
404    请求的文件不存在
414    请求URL头部过长
500    服务器内部错误
502    无效网关
503    当前服务不可用
504    网关请求超时

5、HTTP请求访问的完整过程

1.建立连接

2.接收请求

3.处理请求

4.访问资源

5.构建响应报文

6.发送响应报文

7.记录日志

6、请求报文

①请求行:请求行由请求方法,url以及协议版本三部分组成。

②请求头:请求头为请求报文添加了一些附加信息,由名\值对组成,每行一对,名和值之间使用冒号分隔

③空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。

④请求体:请求体是请求提交的参数,get方法已经在url中指明了参数,所以提交时没有数据。post方法提交的参数在请求体中。

常用的请求头:

请求头 描述
Host 接受请求的服务器地址,可以是Ip:端口号,也可以是域名
User-Agent 发送请求的应用程序名称
Connection 指定与连接相关的属性,如Connection:Keep-Alive
Accept-Charset 通知服务端可以发送的编码格式
Accept-Encoding 通知服务端可以发送的数据压缩格式
Accept-Language  通知服务端可以发送的语言

7、响应报文

①状态行:状态行由协议版本,状态码,状态码描述三部分组成。

②响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。

③空行:响应头部的最后会有一个空行,表示响应头部结束。

④响应体:服务器返回的相应HTML数据,浏览器对其解析后显示页面

常见相映头:

响应头 描述
Server 服务器应用程序软件的名称和版本
Content-Type 响应正文的类型(是图片还是二进制字符串)
Content-Length  响应正文长度
Content-Charset 响应正文使用的编码
Content-Encoding 响应正文使用的数据压缩格式
Content-Language  响应正文使用的语言

你可能感兴趣的:(服务器,运维)