Web基础与HTTP协议

目录

域名的概述

域名的概念

分布式

层次性

域名空间结构

域名注册

域名小结

扩展面试点

域名注册

域名注册

网页的概念

编写语言为HTML

网站

主页

域名

HTTP/HTTPS

URL

HTML

超链接

发布

HTML概述

HTML文档的结构

Web概述

Web1.0和Web2.0

Web1.0

Web1.0特征

Web2.0

Web2.0特征

静态页面与动态页面

(1) 静态页面定义

(2) 静态页面特点:

(3)动态页面

(4) 动态页面特点

总结

HTTP协议概述

cookie和session扩展

HTTP协议的版本

扩展

HTTP请格式事(GET/POST方式)

GET 方式

POST 请求方式

GET与POST区别

HTTP状态码

生产环境常见的HTTP状态码 

HTTP协议请求流程分析


域名的概述

1.1 域名概述 1.网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的标识 (固定的 地址),用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相 连的网络和主机时,均采用一种唯一、通用的地址格式,即每一个与网络相连接的计算机和服务器都被指派一个独一无二的地址 2.为了保证网络上每台计算机的 P 地址的唯 一性,用户必须向特定机构申请注册,分配P 地址网络中的地址方案分为两套: IP 地址系统和域名地址系统。这两套地址系统其实是-对应的关系由于 地址是数字标识,使用时难以记忆和书写,因此在 地址的基础上又发展出一种符号化的地址方案,来代替数字型的 IP地址

七层参考模型和五层,逻辑网卡和物理网卡 bond

域名的概念

IP地址不易记忆

早期使用Hosts文件解析域名

主机名称重复

主机维护困难

DNS(Domain Name System 域名系统)

分布式

把所有的解析分给其他子域处理回头再返回

层次性

Web基础与HTTP协议_第1张图片

 

 

域名空间结构

.

顶级域

cn. us.jp.国家名

二级域

com.cn. edu.cn. org,cdn, net.cn.

三级域也就是子域(个人专有或者企业专有的)

baidu.com.cn. sina.com.cn

主机站点

www. mall.

www.baidu.com.cn.完整的格式

域名注册

域名注册是Internet中用于解决地址对应问题的一种方法

遵循先申请先注册原则

域名注册步骤

Web基础与HTTP协议_第2张图片

域名小结

1、网络上交互是基于TCP/IP协议的,每个主机在逻辑上有一个唯一位置标识 (IP地址),物理地址为MAC地址

2、为了保证地址唯一性,用户协议向特地给机构申请注册,分配IP地址网络中的地址有两套方案:

IP地址系统 域名地址系统 而由于IP是由32位二进制数字标识,不方便记忆,所以 以IP地址为基础发展出了符号化地址来代替解决方案,也是是域名

扩展面试点

阿里云域名怎么申请申请 查询重名 给钱20-60块 备案 (阿里云) 拍照(负责人拍照人) 10-20天 申请之后就可以解析和用 但是如果有问题会被封

DNS解析

DNS解析方式,三种: /etc/hosts linux系统中负责快速解析的文件,包含了ip与主机名的映射关系,在没有DNS服务器的情况下,使用本地/etc/hosts完成解析/映射,实现快速访问 PS:主要用于主机之间 (IP和主机名)的映射/解析关系,示例:

192.168.226.128 master

192.168.226.129 node1

192.168.226.130 node22

/etc/resolv.conf

DNS客户端配置文件,主要用于设置DNS服务器的IP和域名,还包含了主机域名的搜索顺序等等,这个文件是由域名解析器 (resolver,一个根据主机名解析IP地址的库) 使用的配置文件。

PS:主要用与匹配DNS服务器,示例: nameserver 114.114.114.114 nameserver 8.8.8.8 nameserver 218.2.135.1

/etc/sysconfig/network-scripts/ifcfg-ens33 我们也可以在网卡配置文件中定义DNS1= DNS2=

生效顺序 1 hosts文件 2 网卡配置文件 3 /etc/resolv.conf

域名注册

1、定义: 标识一组主机并提供它们的有关信息的树形结构(主要确定了根在哪,就可以确定每个分支) www.baidu.com 域名服务器(分布式,每台主机维护一个部分): ① 保持和维护域名空间的程序 ② 响应解析器的请求

解析端(客户端) 向DNS服务器发出请求的设备

2、域名空间结构(从右往左看) ① 根域 位于域名空间最顶层,一般用一个 “.” 表示 基础单位,除了根域 其他都只有一个上级域,有0或多个子域,同层域不可重复的子域或域名

② 顶级域 一般代表一种类型的组织机构或国家地区(主要有此两种类型构成),如 net(网络公司)、com(商业)、org(民间团体组织)、edu(教育)、gov(政府)、mil(军事)、cn(中国)、jp(日本)、hk(中国香港)

③ 二级域 用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn …

④ 子域 用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn …

主机 主机位于域名空间最下层,就是一台具体的计算机,如 www、mail、都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn. 来表示,这种表示方式称为 FQDN (完全合格域名),也是这台主机在域名中的全名

返回结果------>域名服务器------>本地缓存------>用户------->ip地址 这个过程叫做递归

从根到顶级域再到二级域叫迭代

返回用户的过程叫递归(依次返回)

域名注册

是Internet中用于解决地址对应问题的一种方法 遵循先申请先注册原则 域名注册步骤 准备申请资料----》寻找域名注册网站----》查询域名----》正式申请----》申请成功

网页的概念

纯文本格式文件

编写语言为HTML

在用户的浏览器中被“翻译”成网页形式显示出来

网站

由一个一个页面构成的,是多个网页的结合体

主页

打开网站后出现的第一个网页称为网站主页(或首页)

域名

浏览网页时输入的网址

HTTP/HTTPS

用来传输网页的通信协议

URL

是一种万维网寻址系统

HTML

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

超链接

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

发布

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

HTML概述

HTML超文本标记语言

Hyper Text Markup Language

网页的“源码

浏览器:“解释和执行”HTML源码的工具

Web基础与HTTP协议_第3张图片

HTML文档的结构

HTML网页

头部部分

标题部分

主体部分

网页内容,包括文本、图像等

网页摘要信息的作用 有利于浏览器解析有利于搜索引擎搜索

Web基础与HTTP协议_第4张图片 

Web基础与HTTP协议_第5张图片 

Web基础与HTTP协议_第6张图片 

重启服务

输入ip即可访问

 

 

Web概述

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

万维网并非某种特殊的计算机网络,是一个大规模的、联机式的信息贮藏库,使用链接的方法能非常方便地从因特网上的一个站点访问另一个站点(超链技术),具有提 供分布式服务的特点。万维网是一个分布式的超媒体系统,是超文本系统的扩充,基于B/S架构实现

Web基础与HTTP协议_第7张图片

Web基础与HTTP协议_第8张图片 

URL:万维网使用统一资源定位符(Uniform Resource Locator)来标志万维网上的各种文档,并使每个文档在整个因特网的范围内具有唯一的标识符URL。

HTTP:为解决"用什么样的网络协议来实现整个因特网上的万维网文档”这一难题,就要使万维网客户程 序(以浏览器为主,但不限于浏览器)与万维网服务器程序之间的交互遵守严格的协议,即超文本传送 协议(HyperText Transfer Protocol)。HTTP是处于应用层的协议,使用TCP传输层协议进行可靠的传送。因此,需要特别提醒的是,万维网是基于因特网的一种广泛因特网应用系统,且万维网采用的是

HTTP(80/TCP)和 HTTPS(443/TCP)的传输协议,但因特网还有其他的网络应用系统(如:FTP、SMTP等等)。

HTML:为了解决"怎样使不同作者创作的不同风格的万维网文档,都能在因特网上的各种主机上显示出 来,同时使用户清楚地知道在什么地方存在着链接”这一问题,万维网使用超文本标记语言(HyperText Markup Language),使得万维网页面的设计者可以很方便地用链接从页面的某处链接到因特网的任何一个万维网页面,并且能够在自己的主机品目上将这些页面显示出来。HTML与txt一样,仅仅是是一种 文档,不同之处在于,这种文档专供于浏览器上为浏览器用户提供统一的界面呈现的统一规约。且具备 结构化的特征,这是txt所不具备的强制规定。

Web1.0和Web2.0

Web1.0

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

Web1.0特征

以静态 单向阅读为主

Web2.0

更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者 加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与

Web2.0特征

用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户

静态页面与动态页面

(1) 静态页面定义

静态网页是标准的HTML文件

扩展名是.htm、html

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

是网站建设的基础,早期网站一般都由静态网页制作

没有后台数据库、不含程序和不可交互的网页

相对更新起来比较麻烦,适用于一般更新较少的展示型网站

(2) 静态页面特点:

每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”

网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的

静态网页的内容相对稳定,容易被搜索引警检索

静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难

静态网页的交互性较差,在功能方面有较大的限制

页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面

(3)动态页面

网页 URL不固定,能通过后台与用户交互

在动态网页网址中有一个标志性的符号--“?

常用的语言有PHP、ISP、Python、Ruby等

(4) 动态页面特点

交互性

网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋

自动更新

无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量

因时因人而变

当不同的时间,不同的人访问同一网址时会产生不同的页面

总结

静态页面由于很多内容都是固定的,在功能方面有很大的限制,所以交互性较差力动态网页则可以实现更多的功能,如用户的登录、注册、查询等

HTTP协议概述

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

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

HTTP 是一种无状态(stateless)协议,HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理(存储,保存)。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务,提高效率。(每一次做的事都是一模一样的就是无状态)(如果每次都复习一遍之前的事情在此基础上再添加新的叫做有状态)

cookie和session扩展

然而,在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如Cookie。

cookie和session都为了实现的是http的短期的持久化(内存/缓存方式,查询快、效率比较高)cookie是缓存在用户端(client)浏览器中的(默认缓存一天),当下次客户端通过同一个浏览器访问客户端的时候,会优先读取cookie中的缓存信息,向服务端进行请求,同时服务端收到客户端请求的时候,读取到cookie文件,知道客户端之前找的是服务器A处理的任务,为了省事儿,省资源,干脆直接进请求直接再交给服务器A处理

两者对比: cookie 省服务器性能 session 更安全 1.为后面服务、集群、功能优化做铺垫 2.具体解释了怎么解决HTTP无状态协议的持久化/存储

HTTP协议的版本

HTTP 0.9:已过时

1991,原型版本,功能简陋,只有一个命令GET。GET /index.html ,服务器只能回应HTML格式字符串,不能回应别的格式

HTTP 1.0:

1996年5月,支持cache, MIME, method

每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建 一个连接引入了POST命令和HEAD命令头信息是 ASCII 码,后面数据可为任何格式。服务器回应时会告诉客户端,数据是什么格式,即Content-Type字段的作用。这些数据类型总称为MIME 多用途互联网邮件扩展,每个值包括一级类型和二级类型,预定义的类型,也可自定义类型, 常见Content-Type值: text/xml image/jpeg audio/mp3

HTTP 1.1:

1997年1月,引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。对于同一个域名,大多数浏览器允许同时建立6个持久连接引入了管道机制,即在同一个TCP连接里,客户端可以同时发送多个请求,进一步改进了HTTP协议的效率

新增方法:PUT、PATCH、OPTIONS、DELETE

同一个TCP连接里,所有的数据通信是按次序进行的。服务器只能顺序处理回应,前面的回应慢,会有 许多请求排队,造成"队头堵塞"(Head-of-line blocking)

为避免上述问题,两种方法:一是减少请求数,二是同时多开持久连接。

网页优化技巧,如合并脚本和样式表、将图片嵌入CSS代码、域名分片(domain sharding)等

HTTP 协议不带有状态,每次请求都必须附上所有信息。请求的很多字段都是重复的,浪费带宽,影响速度

扩展

HTTP1.0和HTTP1.l之间的区别 ① 缓存处理 在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entitytag,If-Unmodified-Since,If-Match,If-None-Match等更多可供选择的缓存头来控制缓存策略。

② 带宽优化及网络连接的使用 HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206 (Partial Content) ,这样就方便了开发者自由的选择以便于充分利用带宽和连接

③ 错误通知的管理 在HTTP1.1中新增了24个错误状态响应码,如409 (Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除

④ Host头处理 在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的RZ并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed web Servers),并且它们共享一个Ie地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有inost头域会报告一个错误(400 Bad Request )

⑤ 长连接 HTTP1.1支持长连接〈PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTT请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启connection:keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点

HTTP请格式事(GET/POST方式)

GET 方式

请求行 请求的方式 请求的资源路径 请求的版本协议号

请求头(描述信息/标准化信息)

Accept: 客户端可以接受的数据类型

Accept-Language: 客户端可以接受的语言类型

User-Agent: 浏览器的信息

Acpect-Encoding: 客户端可以接受的编码格式

Host:表示请求的ip和端口号

Connection: 告诉服务器请求连接如何处理Keep-Alive: 通知服务器回传数据不要马上关闭,保持一小段的连接

Closed:马上关闭

POST 请求方式

请求行 请求的方式 请求的资源路径 请求的协议的版本号

请求头

Accept: 客户端可以接受的数据类型

Accept-Language: 客户端可以接受的语言类型

Referer: 表示请求发起时,浏览器地址栏中的地址

User-Agent: 浏览器的信息

Content-Type: 发送的数据类型Content-Length: 发送的数据长度

请求体: 就是发送给服务器的数据

GET与POST区别

① 区别一:语义上的区别 Get向服务器请求数据,依照HTTP协议,get 是用来请求数据。 Post向服务器发数据,依照HTTP协议,Post的语义是向服务器添加数据,也就是说按照Post的语义,该操作是会修改服务器上的数据

② 区别二:服务器请求的区别 Get请求是可以被缓存,示例: 访问百度,访问的方式就是GET,此时访问后的内容会缓被存在浏览器中,短时间再次访问,其实是拿到的浏览器中的缓存内容 另外Get请求只能接收ASCII码的回复 Post请求是不可以被缓存的。对于Post方式提交表单,刷新页面浏览器会弹出提示框“是否重新提交表单”, Post可以接收二进制等各种数据形式,所以如果要上传文件一般用Post请求

③ 区别三:参数放请求头和请求体的差别 Get请求通常没有请求体(当然这也是可以由程序猿心情改变的),在TCP传输中只需传输一次(而不是一个包), 所以Get请求效率相对高。 Post请求将数据放在请求体中,而实际传输中,会先传输完请求头,再传输请求体,是分为两次传输的(而不是两个包)。 Post请求头会比Get更小(一般不带参数),请求头更容易在一个TCP包中完成传输,更何况请求头中有Content-Length的标识,可以更好地保证Http包的完整性。

简单的理解: ###GET方法: 从指定的服务器上获得数据 GET请求能被缓存 GET请求会保存在浏览器的浏览纪录里(cookit) GET请求有长度的限制 主要用于获取数据 查询的字符串会显示在URL中,不安全

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

HTTP状态码

当使用浏览器访问某一个URL,会根据处理情况返回相应的处理状态 通常正常的状态码为2xx,3xx(如200) 如果出现异常会返回4xx,5xx(如404)

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

生产环境常见的HTTP状态码 

消息 描述 200 OK 请求成功(其后是对GET和POST请求的应答文档) 301 Moved Permanently 请求的永久页面跳转 403 Forbidden 禁止访问该页面 404 Not Found 服务器无法找到被请求的页面 500 Internal Server Error 内部服务器错误 502 Bad Gateway 无效网关 503 Service Unavailable 当前服务不可用 504 Gateway Timeout 网关请求超时

状态码大全地址:常见的HTTP状态码及HTTP状态码大全-太平洋IT百科

HTTP协议请求流程分析

Web基础与HTTP协议_第9张图片 

用户输入URL(地址链接)http://ww.baidu.com:80/tools.html)客户端获取到端口及主机名后,客户端利用DNS解析域名,首先客户端的浏览器会先找自身的缓存,如果有解析结束,如果没有客户端会去找host文件,如果hst文件没有的话,客户端会去找本地的DNS缓存服务器,本地的DNS缓存服务器没有的话,缓存服务器会去找根域,根域没有,会返回一个.com.然后本地缓存服务器会去找顶级域,顶级域没有的话会返回baidu.com.,然后本地缓存服务器会去找二级域,二级域解析完后会返回客户端。 客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接 HTTPS请求的整个过程的详细分析 https://blogcsdnnet/seujava er/article/details/90018326

 

 

你可能感兴趣的:(http,网络,服务器)