Web基础
1.1 域名和DNS
1. 域名的概念
网络是基于TCP/IP协议进行通信和连接的,每一台主机都有一个唯一的固定的IP地址,以区别于成千上万个用户和计算机。为保证网络上每台计算机的IP地址的唯一性,用户必须向特定机构申请注册、分配IP地址。网络中地址方案有两套:IP地址系统和域名地址系统。这个两套系统其实是一一对应的。IP地址用二进制数来表示,每个IP地址长32比特,由4组8位的二进制数字组成,数字之间用点间隔。为了方便记忆地址,域名产生了。域名是符号化的地址并且与IP地址对应。
通俗的说,域名就相当于一个家庭的门牌号,别人通过这个号码可以很容易的找到你。
(1)。域名的结构
例如: www.baidu.com
"baidu"是这个域名的主体,"com"则是该域名的后缀,代表这是个com国际域名,是个顶级域名,而前面的www是主机名。
域名有由英文字母和数字组成, 每一组不超过63个字符,也不区分大小写字母,除连字符(-)不能使用其他的标调符号。低级别域名写在最左边,高级别的写在右边。
(2)。域名的结构类型
根域:指的是根服务器。用来管理互联网的主目录,全世界有13个。一个为主根服务器,放置在美国,其余12个均为铺根服务器。其中9个在美国,2个在欧洲,1个在日本。所有的根服务器均由美国政府授权的机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等管理。
顶级域:包括组织域名和国家/地区域名。域名的最右侧是国家/地区域名。国家代码由两个字母组成,如.cn,.de 和 .jp ,其中.cn用于商业机构,.net用于网络组织,.org用于各种组织。
二级域名:在顶级域名之前的域名,它是指域名注册人的网上名称,例如baidu。
FQDN:即主机名。DNS后缀, 是主机名加上全路径。
2.Hosts文件
Hosts文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到相应的IP地址,实现DNS的功能,它可以由计算机的用户进行修改控制。
作用:在网络上访问网站,要首先通过DNS服务器要把访问的域名解析成IP地址后, 计算机才能对个网络域名进行访问。
要是对于每个域名请求我们都要当道域名服务器解析后返回IP信息,这样访问网络的效率就会降低,因为DNS做域名解析和返回IP都需要时间。为了提高对经常访问的网络域名的解析效率,可以通过在Hosts文件中建立域名和IP的映射关系来达到目的。根据系统规定,在DNS请求前,系统会检查自己的Hosts文件中是否有这个网络域名映射关系。如果有,则调用这个IP地址映射,如果没有,再向已知的DNS服务器提出域名解析,也就是说Hosts的请求级别比DNS高。
2。修改Hosts文件
windows系统下Hosts文件存储在目录:c:\windows\system32\drivers\etc\下面,用记事本可以对其进行修改,CentOS系统中存储在目录/etc/hosts下面,用vi/etc/hosts可以对其进行修改。如:127.0.0.1 www.baidu.com
主机名到IP地址的映射有两种方式
(1)静态映射:hosts文件
(2)动态映射。DNS-域名解析系统。
在域名解析时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名机械解析的方法。将一些常用的域名放入静态域名解析表中,可以大大提高域名解析效率。
在windows命令行模式中输入网络查询命令nslookup www.baidu.com可以查询到域名对应的IP地址。
4。域名注册
1.2Http协议
超文本传输协议(HyperText Transfer Protocl , HTTP) 是互联网上应用最为广泛的一种网络技术协议,所有的网页文件都必须遵守这个标准。
1.2.1HTTP 协议概述
HTTP协议采用了请求/相应模型。客户端向服务器发送一个请求,请求头包含请求的方法,URL、协议的版本,以及包含请求修饰符,客户信息和内容的类似于MIME的消息结构。
服务器以一个状态运行作为响应,响应的内容包括消息协议的版本、成功或者错误编码,再加上服务器信息,实体元信息以及可能的实体内容。
HTTP1.0--这是第一个在通信中指定版本好的HTTP协议版本,至今仍被广泛的采用,特别是代理服务器中
HTTTP1.1--当前版本。持久连接被默认采用,并能很好地配合代理服务器工作:还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。
1.2.2 HTTP方法
HTTP支持几种不同的请求方法,这些命令称为HTTP方法(HTTP method),每条HTTP请求都包含一个方法,告诉服务器要执行什么动作,包括获取一个页面、运行一个网管程序、删除一个文件等,最常用的获取资源的方法是GET、POST。
GET-- 请求获取Request-URl所标识 的资源
PUT--请求服务器存储一个资源,并用Requert-URI作为其标识
DELETE --请求服务器删除Request-URI所标识的资源
POST--在Request-URI所标识的资源后附加新的数据
HEAD--请求获取由Request-URI所标识的资源的相应消息报头
GET vs POST区别
1.对数据长度的限制
GET请求:URL的长度是受限制的(URL的最大长度是2048个字符)
POST请求:无限制
2.安全性
GET请求:与post相比,get的安全性较差,因为所发送的数据是URL的一部分,在发送密码和其他敏感信息时绝不用GET
POST请求:相比GET更安全,因为参数不会被保存在浏览器历史或WEB服务器日志中。
3.历史
GET请求:参数保留在浏览器历史中
POST请求:参数不会保存在浏览器历史中
4.后退和刷新
GET请求:无害
POST请求:数据会被重复提交
5.书签
GET请求:可收藏为书签
POST请求:不可收藏为书签
1.2.3 HTTP状态码
1xx 100-101 信息提示
2xx 200-206 成功
3xx 300-305 重定向
4xx 400-415 客户端错误
5xx 500-505 服务端错误
1.2.4 HTTP请求流程分析
1·.请求报文
(1)请求行
由三部分组成, 分别是:请求方法,URL以及协议版本
(2)请求头
请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,明和值之间用冒号分割。
HOST 接收请求的服务器地址,可以是IP:端口号,也可以是域名
User-Agent 发送请求的应用程序名称
Connection 指定与连接相关的属性
Accept-Charset 通知服务端可以发送的编码格式
Accept-Encoding 通知服务端可以发送的数据压缩格式
Accept-Language 通知服务端可以发送的语言
(3)空行
请求头的最后有一个空行,表示请求头的结束,接下来为请求体,这一行非常重要,必不可少。
(4)请求体
请求体是请求提交的参数,GET方法已经在URL中指明了参数,所以请求体中没有数据。而POST方法提交的参数在请求体中。
2.响应报文
(1)状态行
由三部分组成,分别是:协议版本,状态码,状态码描述
(2)响应头
Server 服务器应用程序软件的名称和版本
Content-Type 响应正文的类型
Content-Length 响应正文长度
Content-Charset 响应正文使用的编码
Content-Encoding 响应正文使用的压缩格式
Content-Language 响应正文使用的语言
(3)空行
响应头的最后会有一个空行,表示响应头的结束。
(4)响应体
服务器返回的相应HTML数据,浏览器对其解析后显示页面
1.2.5 Fiddler 抓包工具
1、下载Fiddler 并安装
Fiddler下载地址 http://www.downza.cn/soft/234727.html
2. IE浏览器默认 Fiddler启动后就可以抓包
Fox浏览器 需要设置下代理服务器 :127.0.0.1:8888
具体参照文章:
https://www.cnblogs.com/miantest/p/7289694.html