web基础与http服务

本文详细介绍了Web基础知识,包括域名的解析机制、HTTP协议的工作流程、静态与动态网页的区别,以及网页标签和Web1.0与Web2.0的对比。重点阐述了HTTP请求和响应的结构,以及常见的HTTP状态码,帮助读者深入理解Web通信的本质。
摘要由CSDN通过智能技术生成

前言

本章内容介绍web基础知识,包括域名的概念、DNS原理、静态网页和动态网页的相关知识。

一、web基础

1.域名的概念

由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

1.1 域名的概念

  • ip地址不易记忆

1.2 早期使用Hosts文件解析域名

  • 主机名称重复
  • 主机维护困难

1.3 DNS(Domain Name System 域名系统)

  • 分布式
  • 层次性

优先使用Host再使用DNS

2.域名空间结构

2.1根域

  • 根(root)域就是“.”它是由Inetnet名字注册授权机构管理,该机构把域名空间各部分的管理责任分配连接到Internet的各个组织

2.2顶级域

DNS根域的下一级就是顶级域,是由Inetnet名字授权机构管理。共有3种类型的顶级域

  • 组织域
gov政府部门
com商业部门
net网络公司
org民间团体组织
edu教育部门
mil军事部门
cn中国
jp日本
hk中国香港
  • 国家/地区域名
cn中国
jp日本
uk英国
au澳大利亚
hk中国香港

2.3二级域名

二级域注册到个人、组织或公司的名称。这些名称基于相应的顶级域,二级域下可以包括主机和子域。

2.4FQDN=主机名.DNS后缀

主机名在域名空间结构的最底层,主机名和前面讲的域名结合构成FQDN(完全合格的域名),主机名是FQDN的最左端。

二、网页的概念

1.网页基本格式

①网页

  • 纯文本格式文件
  • 编写语言为HTML
  • 在用户的浏览器中被“翻译”成网页形成显示出来

②网站

  • 由一个一个页面构成的,是多个网页的结合体
  • 主页
  • 打开网站后出现的第一个网页称为网站主页(或首页)

③域名

  • 浏览网页时输入的网址

④HTTP/HTTPS

  • 用来传输网页的通信协议(是否加密),是一种通讯/交互的标准/规范

⑤URL

  • 是一种万维网寻址系统

⑥HTML

  • 用来编写网页的超文本标记语言

⑦超链接

  • 超链接是将网站中不同网页连接起来的功能

⑧发布

  • 将制作好的网页上传到服务器供用户访问的过程

三、HTML概述

  • HTML超文本标记语言

Hyper Text Markup Language
网页的“源码”

  • 浏览器:“解释和执行”HTML源码的工具
  • HTML文档的结构
  • HTML网页

头部部分
标题部分
主体部分
网页内容,包括文本,图像等

示例:
 <html>
 
 <head>
 
<title>我的第一个网页 </title>
 
</head>
 
<body >
       Hello World!
</body>
 
</html>

四、网页的基本标签

  • 标题标签
  • 行控制相关标签
  • 范围标签
  • 图像标签
  • 超链接标签
  • 特殊符号

1.头标签中常用标签

<title> 定义了文档的标题
<base> 定义了页面链接标签的默认链接地址
<link> 定义了一个文档和外部资源之间的关系
<meta> 定义了HTML文档中的元数据
<script> 定义了客户端的脚本文件
<style> 定义了HTML文档的样式文件

2.内容标签中常用标签

<table>定义一个表格
<tr>定义了表格中的一行
<td>定义了表格中某一行的一列
<img>定义了一个图像
<a>定义了一个超链接
<p>定义了一行
<br>定义了换行
<font>定义了字体

五、Web概述

Web (World Wide Web)即全球广域网,也称为万维网,是一种分布式图形信息系统,建立在Internet上的一种网络服务。

1.web1.0 vs web2.0

  • Web1.0

以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容
这个过程是网站到用户的单向行为。

  • web2.0
  • 更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者。
  • 加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与。
  • web2.0特征
    用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户。

六、静态网页与动态网页

1.静态网页

  • 静态网页是标准的HTML文件
  • 扩展名是.htm、.html

文件、图像、声音、Flash动画、客户端脚本和ActiveX控件及Java小程序等

  • 是网站建设的基础,早期的网站一般都是由静态网页制作的
  • 没有后台数据库、不含程序和不可交互的网页
  • 相对更新起来比较麻烦,适用于一般更新较少的展示型网站

6.1.1静态网页特点

  • 每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”
  • 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态路由网页都是保存在网站服务器上的
  • 静态网页的内容相对稳定,容易被搜索引擎检索
  • 静态网页没有数据库的支持,再网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
  • 静态网页的交互性较差,再功能方面有较大的限制
  • 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面

2.动态网页

  • 网页URL不固定,能通过后台与用户交互
  • 在动态网页网址中有一个标志性的符号——“?”
  • 常用的语言有PHP、JSP、Python、Ruby等

6.2.1动态网页的特点

  • 交互性
    网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将时今后WEB发展的大势所趋
  • 自动更新
    无需手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量
  • 因时因人而变
    当不同的时间,不同的人访问同一网址时会产生不同的页面

七、HTTP协议概述

1.HTTP协议简介、版本

  • HTTP(超文本传输协议Hyper Text Transfer
    Protocol,HTTP)协议是互联网上应用最为广泛的一种网络协议,它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。

  • HTTP/HTTPS是应用层上的协议,建立在传输层TCP上,客户端通过与服务端进行TCP连接(三次握手),之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。

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

2.HTTP协议的版本

(1)HTTP/0.9:已过时。只接受GET一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST方法,所以客户端无法向服务器传递太多信息。

(2)HTTP/1.0:这是第一个在通讯中指定版本号的 HTTP协议版本,至今仍被广泛采用,特别是在代理服务器中。

(3) HTTP/1.1:引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,能很好地配合代理服务器工作。还支持管道方式机制,即在同一个TCP连接里面,客户端可以同时发送多个请求,以便降低线路负载,提高传输速度。

(4)HTTP/2.0:完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。引入了头信息压缩机制,使用gzip或compress压缩后再发送。支持服务端推送,允许服务器未经请求,主动向客户端发送资源。

3.HTTP方法

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

最常用的获取资源的方法是GET、POST。

GET:对服务器资源获取的简单请求
PUT:向服务器提交数据,以修改数据
DELETE:删除服务器上的某些资源
POST:用于发送包含用户提交数据的请求
HEAD:请求页面的首部,获取资源的元信息

1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。

3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。

4、DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作

1.GET 和POST 比较

###GET 方法:
从指定的服务器上获得数据
GET请求能被缓存
GET请求会保存在浏览器的浏览纪录里 GET请求有长度的限制
主要用于获取数据
查询的字符串会显示在URL后缀中,不安全,比如 http: //www.test.com/a.php?Id=123

POST方法:
提交数据给指定服务器处理
POST请求不能被缓存
POST请求不会保存在浏览器的浏览纪录里POST请求没有长度限制
查询的字符串不会显示在URL中,比较安全

4.HTTP状态码

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

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

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

5.生产环境常见的HTTP状态码

消息            描述   
200             ok                 请求成功(其后是对GETPOST请求的应答文档)
301        moved Permanently       请求的永久页面跳转
403          Forbidden             禁止访问(客户端IP地址被拒绝)
404          Not Found             请求的文件不存在
500      Internal Server Error     服务器内部错误
502          Bad Gateway           无效网关
503        Service Unavailable     当前服务不可用
504          Gateway Timeout       网关请求超时

八.HTTP请求流程

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

​​

1.请求报文

请求行:请求行由请求方法、URL以及协议版本三部分组成。

请求头:请求头为请求报文添加了一些附加信息,由"名/值"对组成,每行一对,名和值之间使用冒号分隔。
空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。
请求体:请求体是请求提交的参数,GET方法已经在 URL 中指明了参数,所以提交时没有数据。POST方法提交的参数在请求体中。

常用的请求头

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

2.响应报文

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

响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。
空行:响应头部的最后会有一个空行,表示响应头部结束。
响应体:服务器返回的相应HTMI数据,浏览器对其解析后显示页面。

常见响应头

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

http协议请求流程分析详细版

用户输入URL(地址链接)(http://www.baidu.com:80/tools.html)客户端获取到端口及主机名后,客户端利用DNS解析域名,首先客户端的浏览器会先找自身的缓存,如果有解析结束,如果没有客户端会去找host文件,如果host文件没有的话,客户端会去找本地的DNS缓存服务器,本地的DNS缓存服务器没有的话,缓存服务器会去找根域,根域没有,会返回一个.com.然后本地缓存服务器会去找顶级域,顶级域没有的话会返回baidu.com.,然后本地缓存服务器会去找二级域,二级域解析完后会返回客户端。
客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接,首先客户端向服务器发送请求连接报文,SYN=1初始序号seq为x,这时客户端进入SYN-SENT状态,服务器确认请求报文ACK=1,SYN=1,确认序号ACK=X+1,服务器产生的初始序号seq=y,回复客户端确认连接,此时服务器进入SYN-RCVD状态,客户端接受后确认报文ACK=1,ACK=y+1,客户端又重组序号为x+1。TCP连接已经建立,客户端进入ESTABLISHED 状态,当服务器收到客户端的确认后,也会进入 ESTABLISHED 状态。客户端连接到IP地址,发送httpGET的请求,从服务器读取http响应。
之后断开连接时,需要通过TCP的四次挥手完成,服务端发送断开连接请求报文,FIN=1,ACK=1,序号为u,客户端处于FIN—WAIT-1(终止等待1)状态,服务器确认报文ACK=1,确认序号为ACK=u+1,服务器的序号为v,回复客户端,服务器服务端处于CLOSE—WAIT(关闭等待)状态,客户端接受确认报文ACK=1,确认序号ACK=v+1,客户端重组序号为seq=u+1,客户端处于FIN—WAIT-2(终止等待2)状态,然后服务器也想让客户端断开连接,就发送了断开连接请求,FIN=1,ACK=1,服务器重组序号为w,服务器服务端处于LAST—ACK(最后确认)状态,客户端接受后确认报文ACK=1.确认序号为ACK=w+1,客户端序号为u+1,客户端进入CLOSED(时间等待)状态,等待最长报文段寿命2*MSL,服务器确认后,立即进入关闭状态。然后进行关闭连接。

九、总结

  • 域名空间结构
  • HTML文档结构
  • 网页基本标签
  • Web1.0和Web2.0区别
  • post和get方法区别
  • HTTP协议报文格式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值