[Linux] Web基础知识与http协议

一、HTML

    1.1 HTML 的概念

HTML被称为超文本标记语言。 它是规范和标准. 它通过标记符号来标记网页中出现的各个部分。网页文件本身就是一种文本文件。 通过向文本文件添加标记,您可以告诉浏览器如何显示其中的内容。 HTML命令可以描述文本、图形、动画、声音、表格、链接等。 HTML文件可以使用任何可以生成txt文件的文本编辑器进行编辑生成超文本标记语言文件,只需将文件名的后缀改为""即可。html"或"。"htm"就足够了。

1.2 HTML的基本标签

HTML标签采用双标记符的形式,前后标记符对应,分别表示标记开始和结束,标记符中间的内容被标签描述。前标记符由“< XXX>”表示,结尾标记符多了一个“/”,由“< /XXX>”表示。

1.3 HTML的文件结构 

 HTML文件最外层由< html> < /html>表示,说明该文件是用HTML语言描述的。在它里面是并列的头标签(< head>)和内容标签(< body>)。

格式:
 <html>
     <head>网页的头部信息</head>
     <body>网页内容</body>
 </html>
HTML的标签
body外标签作用
< title>定义了文档的标题
< base>定义了页面链接标签的默认链接地址
< link>定义了一个文档和外部资源之间的关系
< meta>定义了HTML文档中的元数据
< script>定义了客户端的脚本文件
< style>定义了HTML文档的样式文件
body内标签作用
< table>定义一个表格
< tr>定义了表格中的一行
< td>定义了表格中某一行的一列
< img>定义了一个图像
< a>定义了一个超链接
< p>定义了一行
< br>定义了换行
< font>定义了字体

二、静态网页和动态网页

  2.1 静态网页

        在网站设计中,纯HTML格式的网页通常被称为"静态网页"。 静态网页是带有文件扩展名的标准HTML文件。htm,html。静态网页是网站结构的基础。 早期的网站一般都是由静态网页构成的。

        静态网页也有各种动态效果,如:动画GIF格式、flash、滚动字幕等。这些"动态效果"是可视的,与我们将在下面介绍的动态网页是不同的概念。

        只要静态网页不改变代码,它就不会改变,每天显示的内容也是一样的。静态网页只使用html语言,而不使用任何其他高级编程语言。

2.2 动态网页

        所谓动态网页,是指与静态网页相反的一种web编程技术。对于静态网页来说,随着HTML代码的生成,除非改变了页面代码,否则页面的内容和显示效果基本不变。动态网页的情况并非如此。 页面代码未更改,但显示的内容可能会根据数据库操作的时间、环境或结果而更改。

        动态网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。

        动态网页是由web编程技术生成的,它结合了Java、PHP、C#、数据库编程等HTML以外的高级编程语言和数据库技术,从这个意义上说,实现了对网站内容和风格的高效动态交互管理。 所做的一切。

三、http的相关知识 

3.1 http协议的介绍

HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。

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

    http 1.0   相较以前版本可以支持POST、HEAD方法,支持HTML文件以外的其他类型,但不支持持久连接
   http 1.1   支持持久连接,即在一个TCP连接里面完成多个http请求和响应,但是每个请求和响应是按照顺序一一对应的
  http 2.0   支持完全多路复用,即不光可以在在一个TCP连接里面完成多个http请求和响应,而且请求和响应不用按照顺序一一对应。 ( 也支持压缩,服务端主动推送)
    http 3.0   基于UDP协议 ,最新版本还在初步推广中

3.2 http的方法

HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每条 HTTP 请求报文都包含一个方法, 告诉服务器要执行什么动作,包括:获取一个页面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST、PUT。

方法作用
GET对服务器资源获取的简单请求
PUT向服务器提交数据,以修改数据
POST用于发送包含用户提交数据的请求
DELETE删除服务器上的某些资源
HEAD请求页面的首部,获取资源的元信息
CONNECT用于ssl隧道的基于代理的请求
OPTIONS返回所有可用的方法,常用于跨域
TRACE追踪 请求--响应的传输路径

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

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

3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,几乎目前所有的提交操作都是用POST请求的。

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

3.3 GET与POST的比较

GET 方法

        从指定的服务器上获得数据

        GET请求能被缓存

         GET请求会保存在浏览器的浏览纪录里

        GET请求有长度的限制

         主要用于获取数据

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

POST 方法

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

         POST请求不能被缓存

         POST请求不会保存在浏览器的浏览纪录里

         POST请求没有长度限制

         查询的字符串不会显示在URL 

3.4 http状态码

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

通常正常的状态码为2xx,3xx(如200),如果出现异常会返回4xx,5xx(如404)。

状态码首位范围含义
1xx100-101信息提示
2xx200-206成功
3xx300-305重定向
4xx400-415客户端错误
5xx500-505服务器错误

  常用状态码的具体含义: 

状态码含义
200一切正常
301永久重定向
302临时重定向
401用户名或密码错误
403禁止访问(客户端IP地址被拒绝)
404请求的文件不存在
414请求URL头部过长
500服务器内部错误。比如脚本错误,编程语言语法错误
502无效网关
503当前服务不可用。web服务器不能处理HTTP请求,可能是临时超载或者是服务器进行停机维护。
504网关请求超时。程序执行时间过长导致响应超时,例如程序需要执行20秒,而nginx最大响应等待时间为10秒,这样就会出现超时。

产生502(无效网关)的原因:

1、数据包没有送到网卡,网络问题;

2、数据包送进去了(交换机能抓到包),但是网卡没收到,网卡问题或防火墙问题;

3、网卡接收到了,处理不了,服务问题。(比如服务器当前连接太多,响应太慢;页面素材太多,带宽不够。)

3.5 http的请求过程

用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。

请求消息的4个部分:

请求行:请求行由3部分组成:请求方法、URL和协议版本。

请求标头:请求标头为请求消息添加了一些附加信息,并由名称和值之间用冒号分隔的"名称/值"对组成。

空行:请求头末尾的空行表示请求头的结尾,后跟请求体。 这条线是非常重要和不可或缺的。

请求体:请求体是发送请求的参数。 GET方法已经在URL中指定了参数,因此在提交时没有数据。POST方法发送的参数在请求体中。

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

响应报文四部分:

状态行:状态行由协议版本、状态码、状态码描述3部分组成。

响应标头:响应标头类似于请求标头,并向响应消息添加一些附加信息。

空行:响应头的末尾有一个空行,用来表示响应头的结尾。

响应体:从服务器返回的相应HTML数据被浏览器解析以显示页面。 

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

3.6  HTTP访问的过程

关于TCP的三次握手与四次挥手,请转到以下博客

[网络]传输层协议-CSDN博客

HTTP访问的过程:

  1. 建立连接:客户端发起与服务器的TCP连接,通过三次握手建立可靠的通信通道。

  2. 接收请求:服务器监听到客户端发起的TCP连接,并接收到HTTP请求报文。

  3. 处理请求:服务器解析HTTP请求报文,提取请求方法、路径、头部信息等。                                            根据请求内容执行相应的服务器端处理,可能包括调用后端应用程序、查询数据库、读取文件等。

  4. 访问资源:服务器根据请求访问相应的资源,如HTML文件、图像、数据库等。

  5. 构建响应报文:服务器生成HTTP响应报文,包括状态码、响应头部和响应体。

  6. 发送响应报文:服务器通过之前建立的TCP连接将HTTP响应报文发送回客户端。

  7. 记录日志:服务器记录访问日志,包括客户端IP地址、访问时间、请求方法、请求路径、HTTP状态码等信息。

1、客户端通过域名进行访问,先进行DNS域名解析。

2、之后客户端请求与web服务器建立TCP连接(三次握手)。

3、建立连接后,客户端向web服务器发送一个HTTP请求。

4、服务器响应HTTP请求,客户端的浏览器得到HTML代码。

5、浏览器解析HTML代码,并请求HTML代码中的资源。(浏览器拿到HTML文件后,开始解析HTML代码,遇到静态资源时,就向服务器去请求下载。)

6、断开TCP连接(四次挥手),浏览器对页面进行渲染呈现给用户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值