web根底

域名的概述

域名的概念

  • ip地址不易记忆

前期运用Hosts文件解析域名

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

DNS(Domain Name System 域名体系)

  • 分布式:多体系处理一个
  • 层次性:dns解析过程,比方一级域寻找二级域

域名空间结构

  • 根域
  • 尖端域:安排域,国家/地区域名
  • 二级域名
  • FQDN=主机名.DNS后缀

WEB基础和HTTP协议

域名注册

  • 域名注册是internet中用于处理地址对应问题的一种办法
  • 遵循先申请先注册原则
  • 域名注册过程:

WEB基础和HTTP协议

网页的概念

网页

纯文本格局文件 其编写言语为HTML 在用户的阅读器中被“翻译”成网页办法显现出来

网站

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

主页

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

域名

阅读网页时输入的网址

HTTP

用来传输网页的通讯协议(http:80端口,https:443端口)

URL

是一种万维网寻址体系

HTML

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

超链接

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

发布

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

HTML概述

HTML超文本标记言语

  • Hyper text markup language
  • 网页的“源码
  • 阅读器:“解说和履行” HTML源码的东西

HTML文本的结构

  • HTML网页
  • 头部部分
  • 标题部分
  • 主体部分
  • 网页内容,包含文本、图画等

WEB基础和HTTP协议

头标签中常用标签

标签 描绘
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协议的版别
  1. HTTP 0.9(已过期)
  2. HTTP 1.0(常用)
  3. HTTP 1.1(常用)
  4. HTTP 2.0
  • HTTP/HTTPS是应用层上的协议,树立在传输层TCP之上,客户端经过与服务端进行TCP衔接(三次握手)之后,发送HTTP恳求与接收HTTP呼应都是经过拜访Socket接口来调用TCP协议完结
  • HTTP是一种无状况(stateless)协议,即一向拜访都是一个样,(比方进入淘宝主页,一向改写都是同一个姿态),HTTP本身不会对发送过的恳求和相应的通讯状况进行耐久化处理(存储、保存)。这样做的意图是为了坚持HTTP的简单性
  • 因为HTTP是无状况协议,所以必需要引入一些技能来记载办理状况
  1. cookie:省服务器功用
  2. 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恳求报文都包含一个办法,败诉服务器要履行什么动作
  1. 获取一个Web页面
  2. 运转一个网关程序
  3. 删去一个文件等

恳求办法

HTTP办法 描绘
GET 恳求获取Request-URI所标识的资源
PUT 恳求服务器存储一个资源,并用Request-URI作为其标识
DELETE 恳求服务器删去Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 恳求获取由Request-URI所标识的资源的呼应音讯报头
  • 常用的办法:GET和POST

GET办法

GET办法:从指定的服务器上取得数据

  • 恳求行
  1. 恳求的办法
  2. 恳求的资源途径
  3. 恳求的版别协议号
  • 恳求头(描绘信息/标准化信息)
  1. Accept:客户端能够承受的数据类型
  2. Accept-Language:客户端能够承受的言语类型
  3. User-Agent:阅读器的信息
  4. Accpect-Encoding:客户端能够承受的编码格局
  5. Host:表明恳求的ip和端口号
  6. Connection:告诉服务器清求衔接怎么处理
  7. Keep-Alive:告诉服务器回传数据不要马上封闭,坚持一小段的衔接
  8. Closed:马上封闭

POST办法

POST办法:提交数据给指定的服务器处理

  • 恳求行
  1. 恳求的办法
  2. 恳求的资源途径
  3. 恳求的版别协议号
  • 恳求头(描绘信息/标准化信息)
  1. Accept:客户端能够承受的数据类型
  2. Accept-Language:客户端能够承受的言语类型
  3. Referer.表明恳求发起时,阅读器地址栏中的地址
  4. User-Agent:阅读器的信息
  5. Content-Type:发送的内容类型
  6. Content-Length:发送的数据长度数据类型
  • 恳求体:便是发送给服务器的数据

GET与POST差异

  • 语义上的差异
  1. GET向服务器恳求数据,依照HTTP协议,get是用来恳求数据
  2. POST向服务器发数据,依照HTTP协议,post的语义是向服务器添加数据,也便是按照post语义,该操作是会修正服务器上的数据
  • 服务器恳求的差异
  1. GET恳求是能够被缓存,示例:拜访百度,拜访的办法便是GET,此时拜访后的内容会缓被存在阅读器中,短时刻再次拜访,其实是拿到的阅读器中的缓存内容。GET恳求只能接收ASCII码的回复
  2. POST恳求是不能够被缓存的。关于用OST办法提交表单,改写页面阅读器会弹出提示框”是否重新提交表单”,POST能够接收二进制等各种数据办法,所以假如要上传文件一般用POST恳求
  • 参数恳求头和恳求体的差别
  1. GET恳求一般没有恳求体(当然这也是能够由程序猿心情改动的),在TCP传输中只需传输一次(而不是一个包),所以GET恳求功率相对高。
  2. POST恳求将数据放在恳求体中,而实践传输中,会先传输完恳求头,再传输恳求体,是分为两次传输的(而不是两个包)。
  3. 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协议恳求流程分析

  1. 用户输入URL(地址链接)
  2. 客户端获取到端口及主机名后,客户端利用DNS解析域名
  3. 首先客户端的阅读器会先找本身的缓存,假如有解析完毕假如没有客户端会去找host文件文件没有的话,客户端会去找本地的DNS缓存服务器本地的DNS缓存服务器没有的话,缓存服务器会去找根域根域没有,会回来一个.com.然后本地缓存服务器会去找尖端域,尖端域没有的话会回来baidu.com.,然后本地缓存服务器会去找二级域,二级域解析完后会回来客户端
  4. 客户端解析到地址后会经过TCP的三次握手与服务器树立衔接

总结

  • 最根本的HTTP 1.0和 HTTP 1.1之间的差异要了解
  • 生产环境中http的状况码很重要,要牢记
  • http恳求流程触及到了许多之前博客说的许多根底知识,很浮躁,要彻底说明很难