web根底
域名的概述
域名的概念
- ip地址不易记忆
前期运用Hosts文件解析域名
- 主机名称重复
- 主机保护困难
DNS(Domain Name System 域名体系)
- 分布式:多体系处理一个
- 层次性:dns解析过程,比方一级域寻找二级域
域名空间结构
- 根域
- 尖端域:安排域,国家/地区域名
- 二级域名
- FQDN=主机名.DNS后缀
域名注册
- 域名注册是internet中用于处理地址对应问题的一种办法
- 遵循先申请先注册原则
- 域名注册过程:
网页的概念
网页
纯文本格局文件 其编写言语为HTML 在用户的阅读器中被“翻译”成网页办法显现出来
网站
由一个一个页面构成的,是多个网页的结合体
主页
翻开网站后出现的第一个网页成为网站主页(或首页)
域名
阅读网页时输入的网址
HTTP
用来传输网页的通讯协议(http:80端口,https:443端口)
URL
是一种万维网寻址体系
HTML
用来编写网页的超文本标记言语
超链接
超链接是将网站中不同网页衔接起来的功用
发布
将制作好的网页上传到服务器供用户拜访的过程
HTML概述
HTML超文本标记言语
- Hyper text markup language
- 网页的“源码”
- 阅读器:“解说和履行” HTML源码的东西
HTML文本的结构
- HTML网页
- 头部部分
- 标题部分
- 主体部分
- 网页内容,包含文本、图画等
头标签中常用标签
标签 | 描绘 |
---|---|
title | 界说了文档的标题 |
base | 界说了页面链接标签的默许链接地址 |
link | 界说了一个文档和外部资源之间的联系 |
meta | 界说了HTML文档中的元数据 |
script | 界说了客户端的脚本文件 |
style | 界说了HTML文档的款式文件 |
内容标签中常用标签
标签 | 描绘 |
---|---|
table | 界说了一个表格 |
tr | 界说了表格中的一行 |
td | 界说了表格中某一行的一列 |
img | 界说了一个图画 |
a | 界说了一个超链接 |
p | 界说了一行 |
br | 界说了换行 |
font | 界说了字体 |
网页根本标签
- 标题标签
- 行操控相关标签
- 范围标签
- 图画标签
- 超链接标签
- 特殊符号
web概述
- web (world wide web)即全区广域网,也称为万维网
- 一种分布式图形信息体系
- 树立在Internet上的一种网络服务
Web1.0 vs Web2.0
Web 1.0
- 以编辑为特征,网站供给给用户的内容是编辑处理后供给的,然后用户阅览网站供给的内容。
- 这个过程是网站到用户的单向行为
Web 2.0
- 更重视用户的交互作用,用户近视网站内容的消费者(阅读者),也是网站内容的制造者
- 加强了网站与用户之间的互动,网站内容基于用户供给,网站的许多功用也由用户参与建造,完结了网站与用户双向的交流与参与
- Web2.0特性
- 用户分享,以爱好为聚合点的社群。开放的渠道。活泼的用户
静态网页
- 静态网页是标准的HTML文件
- 扩展名是.htm、.html:文本、图画、声音、FLASH动画、客户端脚本和Activex控件及JAVA小程序等
- 是网站建造的根底,前期网站一般都有静态网页制作
- 没有后台数据库、不含程序和不可交互的网页
- 相对更新起来比较费事,适用于一般更新较少的展现型网站
静态网页特色
- 每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见办法为后缀,而不含有“?”
- 网页内容一经发布到网站服务器上,不管是否有用户拜访,每个静态网页都是保存在网站服务器上的,也便是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件
- 静态网友的内容相对稳定,因而简单被搜索引擎检索
-
- 静态网页没有数据库的支撑,在网站制作和保护方面工作量较大,因而当网站信息量很大时彻底依托静态网页制作办法比较困难
- 静态网页的交互性较差,在功用方面有较大的约束
- 页面阅读速度敏捷,过程无需衔接数据库,开启页面速度快于动态页面
动态网页
- 网页URL不固定,能经过后台与用户交互
- 在动态网页网址中有一个标志性的符号:“?”
- 常用的言语有PHP、JSP、Python、Ruby等
动态网页的特色
- 交互性
即网页会依据用户的要求和挑选而动态改动和呼应,将阅读器作为客户端界面,这将是往后WEB开展的大势所趋
- 自动更新
无须手动地更新HTML文档,便会自动生成新的页面,能够大大节约工作量
- 因时因人而变
当不同的时刻,不同的人拜访同一网址时会发生不同的页面
HTTP协议
HTTP协议概述
- HTTP协议是互联网上应用最为广泛的一种网络协议,设计这个协议的意图是为了发布和承受web服务器上的HTML页面。
- HTTP协议的版别
- HTTP 0.9(已过期)
- HTTP 1.0(常用)
- HTTP 1.1(常用)
- HTTP 2.0
- HTTP/HTTPS是应用层上的协议,树立在传输层TCP之上,客户端经过与服务端进行TCP衔接(三次握手)之后,发送HTTP恳求与接收HTTP呼应都是经过拜访Socket接口来调用TCP协议完结
- HTTP是一种无状况(stateless)协议,即一向拜访都是一个样,(比方进入淘宝主页,一向改写都是同一个姿态),HTTP本身不会对发送过的恳求和相应的通讯状况进行耐久化处理(存储、保存)。这样做的意图是为了坚持HTTP的简单性
- 因为HTTP是无状况协议,所以必需要引入一些技能来记载办理状况
- cookie:省服务器功用
- session:更安全,为后面服务、集群、功用优化做铺垫,具体解说了怎么处理HTTP无状况协议的耐久化、存储
cookie和session都是都是为了完结的是HTTP的短期的耐久化(内存/缓存办法,查询快、功率比较快),cookie是先保存在用户端(client)阅读器中的(默许缓存一天),当下次客户端经过同一个阅读器拜访客户端的时分,会优先读取cookie中的缓存信息,向服务端进行恳求,一起服务端收到客户端恳求的时分,,读取到cookie文件,知道客户端之前找的是哪一台服务器处理的使命,为了节约时刻,节约功用,还是交给这一台服务器处理
HTTP 1.0和 HTTP 1.1之间的差异
- 缓存处理
在HTTP 1.0中主要运用header里的If-Modified-Since,Expires来做为缓存判别的标准,HTTP1.1则引入了更多的缓存操控策略例如Entitytag,If-Unmodified-Since,If-Match,If-None-Match,等更多可供挑选的缓存头来操控缓存策略
- 带宽优化及网络衔接的运用
HTTP1.0中,存在一些浪费带宽的现象,例如客户端仅仅需要某个目标的一部分,而服务器却将整个目标送过来了,而且不支撑断点续传功用,HTTP1.1则在恳求头引入了range头域,它答应只恳求资源的某个部分,即回来码是206(Partialcontent),这样就方便了开发者自由的挑选以便于充分利用带宽和衔接
- 过错告诉的办理
在HTTP1.1中新增了24个过错状况呼应码,如409(conflict)表明恳求的资源与资源的当时状况发生冲突,10(Gone)表明服务器上的某个资源被永久性的删去
- Host头处理
在HTTP1.0中认为每台服务器都绑定一个唯一的地址,因而,恳求音讯中的RZ并没有传递主机名(hostname)。但随着虚拟主机技能的开展,在一台物理服务器上能够存在多个虚拟主机(Multi-home web Servers),而且它们同享一个le地址,HTTP1.1的恳求音讯和呼应音讯都应支撑Host头域,且恳求音讯中假如没有inost头域会陈述一个过错(400 BadReq uest)
- 长衔接
HTTP1.1支撑长衔接〈Persistentconnection)和恳求的流水线(Pipelining)处理,在一个TCP衔接上能够传送多个HTTP恳求和呼应,减少了树立和封闭衔接的耗费和延迟,在HTTP1.1中默许开启connection:keep-alive,一定程度上弥补了HTTP1.0每次恳求都要创立衔接的缺点
HTTP恳求格局
- HTTP支撑几种不同的恳求命令,这些命令被称为HTTP办法(HTTP method)
- 每条HTTP恳求报文都包含一个办法,败诉服务器要履行什么动作
- 获取一个Web页面
- 运转一个网关程序
- 删去一个文件等
恳求办法
HTTP办法 | 描绘 |
---|---|
GET | 恳求获取Request-URI所标识的资源 |
PUT | 恳求服务器存储一个资源,并用Request-URI作为其标识 |
DELETE | 恳求服务器删去Request-URI所标识的资源 |
POST | 在Request-URI所标识的资源后附加新的数据 |
HEAD | 恳求获取由Request-URI所标识的资源的呼应音讯报头 |
- 常用的办法:GET和POST
GET办法
GET办法:从指定的服务器上取得数据
- 恳求行
- 恳求的办法
- 恳求的资源途径
- 恳求的版别协议号
- 恳求头(描绘信息/标准化信息)
- Accept:客户端能够承受的数据类型
- Accept-Language:客户端能够承受的言语类型
- User-Agent:阅读器的信息
- Accpect-Encoding:客户端能够承受的编码格局
- Host:表明恳求的ip和端口号
- Connection:告诉服务器清求衔接怎么处理
- Keep-Alive:告诉服务器回传数据不要马上封闭,坚持一小段的衔接
- Closed:马上封闭
POST办法
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恳求是不能够被缓存的。关于用OST办法提交表单,改写页面阅读器会弹出提示框”是否重新提交表单”,POST能够接收二进制等各种数据办法,所以假如要上传文件一般用POST恳求
- 参数恳求头和恳求体的差别
- GET恳求一般没有恳求体(当然这也是能够由程序猿心情改动的),在TCP传输中只需传输一次(而不是一个包),所以GET恳求功率相对高。
- POST恳求将数据放在恳求体中,而实践传输中,会先传输完恳求头,再传输恳求体,是分为两次传输的(而不是两个包)。
- POST恳求头会比GET更小(一般不带参数),恳求头更简单在一个TCP包中完结传输,更何况恳求头中有Content-Length的标识,能够更好地保证HTTP包的完整性。
简单理解两者的差异
GET办法
- get恳求能被缓存
- get恳求会保存在阅读器的阅读记载里
- get恳求有长度的约束
- 主要用于获取数据
- 查询的字符串会显现在URL中,不安全
POST办法
- POST恳求不能被缓存
- post恳求不会保存在阅读器的阅读记载里
- post恳求没有长度约束
- 查询的字符串不会显现在URL中,比较安全
HTTP状况码
- 当运用阅读器拜访某一个URL,会依据恳求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协议恳求流程分析
- 用户输入URL(地址链接)
- 客户端获取到端口及主机名后,客户端利用DNS解析域名
- 首先客户端的阅读器会先找本身的缓存,假如有解析完毕假如没有客户端会去找host文件文件没有的话,客户端会去找本地的DNS缓存服务器本地的DNS缓存服务器没有的话,缓存服务器会去找根域根域没有,会回来一个.com.然后本地缓存服务器会去找尖端域,尖端域没有的话会回来baidu.com.,然后本地缓存服务器会去找二级域,二级域解析完后会回来客户端
- 客户端解析到地址后会经过TCP的三次握手与服务器树立衔接
总结
- 最根本的HTTP 1.0和 HTTP 1.1之间的差异要了解
- 生产环境中http的状况码很重要,要牢记
- http恳求流程触及到了许多之前博客说的许多根底知识,很浮躁,要彻底说明很难