一.WEB介绍
WEB(World wids Web)也称万维网,是基于Internet的,它允许一台计算机通过Internet去访问存储在世界各地的计算机系统中的信息。
1.HTTP(超文本传输协议)
两个不同的计算机想要互相访问其功能,必须遵守相同的协议。
HTTP是一种实现客户端与服务端的之间通信的响应协议。
通常分为请求(Request->Req)与响应(Reponse->Rsp)
URI:统一资源标识符(抽象)
URL:统一资源定位符
https://(协议)www.baidu.com(域名或者IP地址/端口)?(分隔符)/ie=utf-8&.....(参数名与参数)
2.通信流程
在浏览器中输入www.baidu.com(域名),经过DNS域名解析得到该域名对应的IP地址,通过解析得到IP地址去访问服务,服务段收到请求后按照IP地址从资源库中提取出对应资源返回给用户端后,浏览器识别渲染并展示出来。
二.DNS域名解析服务器
正常的访问流程为:
协议+IP+端口
wwww.baidu.com=1.15.136.212
DNS服务提供域名到IP地址的转换服务。通常用TCP,UDP协议的53端口。
DNS的用途最基本的就是提供域名与IP地址之间的对应关系的记录与查询。
1.DNS记录
A记录:域名->IP地址 一个域名指向一个IP地址(一一对应的关系)
NS记录:域名->域名解析服务器的IP地址 返回该域名由哪台域名解析服务器解析
PIR记录:IP地址->域名 反向记录从IP地址到域名的记录
MX记录:记录域名对应的IP地址
2.DNS服务器类型
根服务器:根服务器是DNS的核心,它并不能将域名直接转化为IP地址,而是识别顶级域名的类型(解析),并将其传到该顶级域名的顶级域名解析服务器。(将DNS查询引导到相应的域名服务器)
顶级域名服务器:顶级域名服务器也不能直接解析服务,而是负责将对应的权威解析服务器返回给查询的客户端。
权威服务器:这时,权威服务器会解析出对应的IP地址,并返回给客户端,客户端拿到后即可进行访问。
3.域名系统的工作原理
4.域名知识
顶级域名:一般分为国家与企业。中国.cn美国.us国际顶级域名.com,.edu.net。
一/二/三级域名:www.baidu./.com
三.HTTP请求类型
最常用的四种请求方法: GET, POST, PUT, head,DELETE ,options(判断允许的请求类型)、connect、trace、MOVE、COPY
1.GET/POST请求
GET请求可以理解为取数据(查询或获取数据),但是GET请求会把请求的数据附加在URL的参数后,这对于敏感数据的处理是不安全的。而POST请求参数都在请求的body中,一般应用在上传数据或者提交数据时。
2.GET/POST的对比
(1)URL可见性:GET请求的请求数据会展示在URL的参数后,而POST的请求数据会放在请求body中。这样较为安全。
(2)传输数据大小:GET传递数据是通过URL进行传递,对传递的数据长度是受到了URL大小的限制,URL最大的长度是2048字符;POST则没有限制。
(3)缓存:GET请求在访问时会自动在浏览器上生成历史记录的缓存;POST则不会生成。
(4)回退页面:GET请求回退页面没有影响;POST会有。
(5)编码方式:GET请求只能是URL编码;POST可以是多种编码形式。
3.HTTP响应过程
你要访问一个服务 必须通过ip+port
我们要与对方通信之前tcp会先建立三次握手
1. 域名解析 www.baidu.com 解析为 IP地址
2. 三次握手的建立
3. 向对方去发送HTTP请求,请求获取页面内容
4. 服务器收到了我们客户端的请求,并作出对应的响应
5. 服务端将页面的内容以及源代码通过响应发送给客户端
6. 客户端浏览器接收源代码信息 并且请求对应的一些资源
7. 浏览器渲染解析得到页面
8. 断开连接
四.HTTP请求/响应数据包
1.请求数据包详细信息
请求行:一般由请求方法字段,URL字段和HTTP协议版本组成。
空行:一般表示告诉服务器请求头部到此结束。
请求头部
HOST:指定请求的服务器的域名(IP地址)和端口号
Referer:指定到达当前网址的上一网址。
User-Agent:表示发出请求的用户信息。
Cookie:用户身份信息。
Content-Type:请求的与实体对应的MIME信息。
Content-Length:请求数据的长度。
Date:请求发送的日期。
Accept:指定客户端能够接收的内容类型。
X-forward-for:记录客户端的IP地址。
2.响应数据包的详细信息
响应行:协议版本,响应状态码,响应描述
响应头部
Content-Language:响应体的语言。
Content-Length:响应体的长度。
Content-Type:返回内容的MIME类型。
Date:原始服务器消息发出的时间。
Location:用来重定向接收方到非请求URL的位置来完成请求或标识新的资源。
Server:web服务器软件名称。
Set-Cookie:设置Http Cookie Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
空格
响应体:响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码,如此之类。
3.HTTP响应码
(1)临时响应
状态码 | 状态码英文名称 | 响应描述 |
100 | Continue | 继续 |
101 | Switching Protocols | 切换协议 |
(2)成功
状态码 | 状态码英文名称 | 响应描述 |
200 | OK | 请求成功 |
201 | Created | 已创建 |
202 | Accepted | 已接受请求 |
203 | Non-Authoritative Information | 非授权信息 |
204 | No Content | 无内容 |
205 | Reset Content | 重置内容 |
206 | Partial Content | 部分内容 |
(3)重定向
状态码 | 状态码英文名称 | 响应描述 |
301 | Moved Permanently | 永久移动 |
302 | Found | 暂时移动 |
304 | Not Modified | 未修改 |
305 | Use Proxy | 使用代理 |
(4)请求错误
状态码 | 状态码英文名称 | 响应描述 |
400 | Bad Request | 客户端请求的语法错误 |
401 | Unauthorized | 请求要求用户的身份验证 |
403 | Forbidden | 禁止访问 |
404 | Not Found | 无法找到 |
405 | Method Not Allowed | 客户端请求方法被禁止 |
408 | Request Time-out | 请求超时 |
(5)服务器错误
状态码 | 状态码英文名称 | 响应描述 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
502 | Bad Gateway | 充当网关或者代理的服务器去尝试执行请求时,从远端服务器接收到了一个无效的 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获得请求 |
五.HTTPS
CA (Certificate Authority) 是颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任第三方,承担公钥体系中公钥的合法性检验的责任。
http 明文传输
tls /ssl 证书加密校验
https 密文传输
六.Cookie/Ssesion
作用
会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
个性化设置(如用户自定义设置、主题等)
浏览器行为跟踪(如跟踪分析用户行为等)
Cookie与Session区别:作用范围不同,Cookie 保存在客户端(浏览器),Session 保存在服务器端。
共同特点:身份校验,会话管理。