国内产品设计公司排名,seo优化技巧有哪些,万网网站建设流程,襄樊公司网站建设1. URI 和 URL
统一资源定位符#xff08;Uniform Resource Locator#xff0c;缩写#xff1a;URL#xff09;#xff0c;是对资源的引用和访问该资源的方法。俗称网址#xff0c;就是浏览器地址栏里面的内容。
URL 语法为#xff1a;protocol://userInfohost:port/p…1. URI 和 URL
统一资源定位符Uniform Resource Locator缩写URL是对资源的引用和访问该资源的方法。俗称网址就是浏览器地址栏里面的内容。
URL 语法为protocol://userInfohost:port/path?query#fragment
协议部分file,ftp,http,https,magnet,telnet用户信息服务器登录信息用户信息主机端口在一起构成权威机构查询字符串向服务器提供附加参数。一般只在 http URL 中使用包含表单数据作为输入提供给在这个服务器上运行的程序。片段指向远程资源的某个特定部分。片段标识符目标在 HTML 文档中用 Id 属性创建。
URI 与 URL 类似统一资源标志符Uniform Resource Identifier缩写URI提供了一种识别资源的方法。但与 URL 不同的是URI 不提供定位所述资源的方法。
URI 的最常见的形式是统一资源定位符URL经常指定为非正式的网址。由此可以看出 URI 是 URL 的超集并且每个 URL 本质上也是一个 URI。
URI 是 URL 的父级URL 是 URI 的子级。可能有人就奇怪了明明是 URL 包含了 URI 为啥 URI 反而是父级想要理解这个概念最好的说明就是 Java 的继承关系。URL 继承了 URI 。因为 URL 继承了所有 URI 的内容所以它比 URI 更加详细但是 URI 是它的父级。
2. 网络协议
网络协议就是计算机之间通信过程中要遵循的一些约定好的规则。
常见网络协议
名称作用默认端口TCPTransmission Control Protocol传输控制协议一种可靠的面向连接的传送服务。无UDP User Datagram Protocol用户数据报协议提供了无连接的数据包服务该服务提供了不可靠的、“尽力而为”的初步传送。无IP Internet ProtocolInternet 协议一个无连接的协议主要负责在主机之间寻址并为数据包设定路由。无HTTPHyperText Transfer Protocol超文本传输协议主要的 web 浏览器和 web 服务器支持使用。80HTTPSHyper Text Transfer Protocol over SecureSocket Layer安全超文本传输协议在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性433SMTPSimple Mail Transfer Protocol简单邮件传输协议是为网络系统间的电子邮件交换而设计的。25DNSDomain Name Service, 域名解析服务作用是将域名转换为 IP 地址或将 IP 地址转换为域名用于解析完全合格域名。53
3. 网络分层
互联网协议按照功能不同分为 OSI 七层或 TCP/IP 五层或 TCP/IP 四层。 应用层应用层的任务是通过应用进程之间的交互来完成特定的网络作用常见的应用层协议有域名系统 DNS, HTTP 协议等。表示层表示层的主要作用是数据的表示、安全、压缩。可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。会话层会话层的主要作用是建立通信链接保持会话过程通信链接的畅通同步两个节点之间的对话决定通信是否被中断以及通信中断时决定从何处重新发送。传输层传输层的主要作用是负责向两台主机进程之间的通信提供数据传输服务。传输层的协议主要有传输控制协议 TCP 和用户数据协议 UDP。网络层网络层的主要作用是选择合适的网间路由和交换结点确保数据及时送达。常见的协议有 IP 协议。数据链路层数据链路层的作用是在物理层提供比特流服务的基础上建立相邻结点之间的数据链路通过差错控制提供数据帧Frame在信道上无差错的传输并进行各电路上的动作系列。 常见的协议有 SDLC、HDLC、PPP 等。物理层物理层的主要作用是实现相邻计算机结点之间比特流的透明传输并尽量屏蔽掉具体传输介质和物理设备的差异。
4. DNS
DNS(DOMAIN NAME SYSTEM) 是一个域名系统是万维网上作为域名和 IP 地址相互映射的一个分布式数据库能够使用户更方便的访问互联网而不用去记住能够被机器直接读取的 IP 数串。
4.1 DNS 作用
通过主机名最终得到该主机名对应的 IP 地址的过程叫做域名解析或主机名解析。在解析域名时可以首先采用静态域名解析的方法如果静态域名解析不成功再采用动态域名解析的方法域名是互联网上的身份标识是不可重复的唯一标识资源。
4.2 DNS 解析的过程
第一步客户机提出域名解析请求并将该请求发送给本地域名服务器。
第二步当本地域名服务器收到请求后就先查询本地缓存如果有该纪录项则本地域名服务器就直接把查询结果返回。
第三步如果本地缓存中没有该纪录则本地域名服务器就直接把请求发给根域名服务器然后根域名服务器再返回给本地域名服务器一个所查询域根子域 主域名服务器地址。
第四步本地服务器再向返回域名服务器发送请求然后接受请求服务器查询自己缓存如果没有该纪录则返回相关下级域名服务器地址。
第五步重复第四步直到找到正确纪录。
第六步本地域名服务器把返回结果保存到缓存以备下一次使用同时还将结果返回给客户机。
5. TCP 三次握手
三次握手的本质就是确定发送端和接收端具备收发信息的能力在能流畅描述三次握手的流程及其中的字段含义作用的同时还需要记住每次握手时接收端和发送端的状态。
先看一张很经典的图发送端有 CLOSED、SYN-SENT、ESTABLISHED 三种状态接收端有 CLOSED、LISTEN、SYN-RCVD、ESTABLISHED 四种状态。 第一次握手客户端向服务端发起建立连接请求客户端会随机生成一个起始序列号 x客户端向服务端发送的字段中包含标志位 SYN1序列号 seq100。第一次握手前客户端的状态为 CLOSE第一次握手后客户端的状态为 SYN-SENT。此时服务端的状态为 LISTEN 第二次握手服务端在收到客户端发来的报文后会随机生成一个服务端的起始序列号 y然后给客户端回复一段报文其中包括标志位 SYN1ACK1序列号 seqy确认号 ackx1。第二次握手前服务端的状态为 LISTEN第二次握手后服务端的状态为 SYN-RCVD此时客户端的状态为 SYN-SENT。其中 SYN1 表示要和客户端建立一个连接ACK1 表示确认序号有效 第三次握手客户端收到服务端发来的报文后会再向服务端发送报文其中包含标志位 ACK1序列号 seqx1确认号 acky1。第三次握手前客户端的状态为 SYN-SENT第三次握手后客户端和服务端的状态都为 ESTABLISHED。
6. TCP 四次挥手
和三次握手一样先看一张非常经典的图客户端在四次挥手过程中有 ESTABLISHED、FIN-WAIT-1、FIN-WAIT-2、TIME-WAIT、CLOSED 等五个状态服务端有 ESTABLISHED、CLOSE-WAIT、LAST-ACK、CLOSED 等四种状态。 第一次挥手客户端向服务端发送的数据完成后向服务端发起释放连接报文报文包含标志位 FIN1序列号 sequ。此时客户端只能接收数据不能向服务端发送数据。
第二次挥手服务端收到客户端的释放连接报文后向客户端发送确认报文包含标志位 ACK1序列号 seqV确认号 acku1。此时客户端到服务端的连接已经释放掉客户端不能像服务端发送数据服务端也不能向客户端发送数据。但服务端到客户端的单向连接还能正常传输数据。
第三次挥手服务端发送完数据后向客户端发出连接释放报文报文包含标志位 FIN1标志位 ACK1序列号 seqw确认号 acku1。
第四次挥手客户端收到服务端发送的释放连接请求向服务端发送确认报文包含标志位 ACK1序列号 sequ1确认号 ackw1。
7. HTTP 协议
超文本传输协议是一个基于请求与响应无状态的应用层的协议常基于 TCP/IP 协议传输数据互联网上应用最为广泛的一种网络协议所有的 WWW 文件都必须遵守这个标准。设计 HTTP 的初衷是为了提供一种发布和接收 HTML 页面的方法。
发展历史
版本时间内容发展现状HTTP/0.91991 年不涉及数据包传输规定客户端和服务器之间通信格式只能 GET 请求没有作为正式的标准HTTP/1.01996 年传输内容格式不限制增加 PUT、PATCH、HEAD、 OPTIONS、DELETE 命令正式作为标准HTTP/1.11997 年持久连接长连接、节约带宽、HOST 域、管道机制、分块传输编码2015 年前使用最广泛HTTP/22015 年多路复用、服务器推送、头信息压缩、二进制协议等逐渐覆盖市场
7.1 HTTP 状态码
HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器的处理是否正常、通知出现的错误等工作。
状态码分类
类别原因短语1XXInformational信息性状态码接收的请求正在处理2XXSuccess成功状态码请求正常处理完毕3XXRedirection重定向需要进行附加操作以完成请求4XXClient Error客户端错误状态码服务器无法处理请求5XXServer Error服务器错误状态码服务器处理请求出错
常见状态码
200 - 请求成功301 - 资源网页等被永久转移到其它 URL404 - 请求的资源网页等不存在500 - 内部服务器错误
7.2 HTTP 请求方式
根据 HTTP 标准HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法 GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
方法描述GET请求指定的页面信息并返回实体主体。HEAD类似于 GET 请求只不过返回的响应中没有具体的内容用于获取报头POST向指定资源提交数据进行处理请求例如提交表单或者上传文件。数据被包含在请求体中。POST 请求可能会导致新的资源的建立或对已有资源的修改。PUT从客户端向服务器传送的数据取代指定的文档的内容。DELETE请求服务器删除指定的页面。CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。OPTIONS允许客户端查看服务器的性能。TRACE回显服务器收到的请求主要用于测试或诊断。PATCH是对 PUT 方法的补充用来对已知资源进行局部更新 。
8. HTTPS 协议
HTTPS 是身披 SSL 外壳的 HTTP。
HTTPS 是一种通过计算机网络进行安全通信的传输协议经由 HTTP 进行通信利用 SSL/TLS 建立全信道加密数据包。HTTPS 使用的主要目的是提供对网站服务器的身份认证同时保护交换数据的隐私与完整性。
SSL 协议 (Secure Socket Layer) 是一种安全传输协议SSL 是 SecureSocketLayer 的缩写即安全套接层协议。
TLS(Transport Layer Security) 传输层安全是 IETF 在 SSL3.0 基础上设计的协议实际上相当于 SSL 的后续版本。
9. 对称加密和非对称加密
9.1 对称加密
对称加密也称为对称密码是指在加密和解密时使用同一密钥得加密方式。 常用对称加密算法
DES 算法全称 Data Encryption Standard是一种使用密钥加密的块算法。现在认为是一种不安全的加密算法因为现在已经有用穷举法攻破 DES 密码的报道了。3DES或称为 Triple DES是三重数据加密算法TDEATriple Data Encryption Algorithm块密码的通称。它相当于是对每个数据块应用三次 DES 加密算法。由于计算机运算能力的增强原版 DES 密码的密钥长度变得容易被暴力破解3DES 即是设计用来提供一种相对简单的方法即通过增加 DES 的密钥长度来避免类似的攻击而不是设计一种全新的块密码算法。AES 加密算法采用分组密码体制每个分组数据的长度为 128 位 16 个字节密钥长度可以是 128 位 16 个字节、192 位或 256 位一共有四种加密模式。
9.2 非对称加密
非对称加密之所以不对称指的就是加密用一个密钥而解密的时候用的是另外一个密钥。 常用非对称加密算法
RSA 是目前应用最广泛的数字加密和签名技术比如国内的支付宝就是通过 RSA 算法来进行签名验证。它的安全程度取决于秘钥的长度目前主流可选秘钥长度为 1024 位、2048 位、4096 位等理论上秘钥越长越难于破解。DSA数字签名算法和 RSA 不同的是 DSA 仅能用于数字签名不能进行数据加密解密其安全性和 RSA 相当但其性能要比 RSA 快。ECDSA椭圆曲线签名算法是 ECC 和 DSA 的结合相比于 RSA 算法ECC 可以使用更小的秘钥更高的效率提供更高的安全保障据称 256 位的 ECC 秘钥的安全性等同于 3072 位的 RSA 秘钥和普通 DSA 相比ECDSA 在计算秘钥的过程中部分因子使用了椭圆曲线算法。
10. Cookie
HTTP 协议本身是无状态的。什么是无状态呢即服务器无法判断用户身份。
Cookie 实际上是一小段的文本信息key-value 格式。客户端向服务器发起请求如果服务器需要记录该用户状态就使用 response 向客户端浏览器颁发一个 Cookie。客户端浏览器会把 Cookie 保存起来。
当浏览器再请求该网站时浏览器把请求的网址连同该 Cookie 一同提交给服务器。服务器检查该 Cookie以此来辨认用户状态。
打个比方我们去银行办理储蓄业务第一次给你办了张银行卡里面存放了身份证、密码、手机等个人信息。当你下次再来这个银行时银行机器能识别你的卡从而能够直接办理业务。 11. Session
在 WEB 开发中服务器可以为每个用户浏览器创建一个会话对象session 对象。
注意一个浏览器独占一个 session 对象默认情况下。因此在需要保存用户数据时服务器程序可以把用户数据写到用户浏览器独占的 session 中当用户使用浏览器访问其它程序时其它程序可以从用户的 session 中取出该用户的数据为用户服务。 12. Token
Token 是服务端生成的一串字符串以作客户端进行请求的一个令牌当第一次登录后服务器生成一个 Token 便将此 Token 返回给客户端以后客户端只需带上这个 Token 前来请求数据即可无需再次带上用户名和密码。
基于 Token 的身份验证是无状态的我们不用将用户信息存在服务器或 Session 中。这种概念解决了在服务端存储信息时的许多问题。没有 session 信息意味着你的程序可以根据需要去增减机器而不用去担心用户是否登录和已经登录到了哪里。 13. Ajax
Asynchronous JavaScript And XML异步 JavaScript 及 XML实现异步请求的技术。
什么是同步请求
场景页面上有一个 a 标签用户点击 a 标签浏览器发出一个请求然后服务器给出一个响应。请求其实是用户的操作触发的
什么是异步请求
向服务器发送请求的时候我们不必等待结果而是可以同时做其他的事情等到有了结果我们可以再来处理这个事。 14. JSON
JSON(JavaScript Object Notation) 一种轻量级的数据交换格式具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案有点类似于正则表达式获得了当今大部分语言的支持从而可以在不同平台间进行数据交换。
JSON 的结构分为两种
名/值对的集合
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”左括号开始“}”右括号结束。每个“名称”后跟一个“:”冒号“‘名称/值’ 对”之间使用“,”逗号分隔。 例子{ name:阿土,age:20 }
值的有序列表
数组是值value的有序集合。一个数组以“[”左中括号开始“]”右中括号结束。值之间使用“,”逗号分隔。 在上面两种 JSON 对象中可以使用的值包括有 15. RESTful 风格
REST 这个词是 2000 年 Roy Fielding 在他的博士论文中提出的Fielding 参与了 HTTP 协议的设计。
REST 是 Representational State Transfer表现层状态转移的缩写如果一个架构符合 REST 原则就称它为 RESTful 架构。
RESTful API 就可以理解成“符合 REST 风格的 API”请求 动词 宾语。
动词使用五种 HTTP 方法对应 CRUD 操作。 GET从服务器获取资源 POST在服务器新建一个资源 PUT在服务器更新资源客户端提供改变后的完整资源 PATCH在服务器更新资源客户端提供改变的属性 DELETE从服务器中删除资源
RESTful 风格 API 例子
GET /zoos: 列出所有动物园POST /zoos: 新建一个动物园GET /zoos/:id: 获取某个指定动物园的信息PUT /zoos/:id: 更新某个指定动物园的全部信息PATCH /zoos/:id 更新某个指定动物园的部分信息DELETE /zoos/:id: 删除某个动物园GET /zoos/:id/animals 列出某个指定动物园的所有动物DELETE /zoos/:id/animals/:id: 删除某个指定动物园的指定动物