网络协议
网络协议是计算机网络中一个约定规则,他里面包含着各种个样的协议组成一个计算机网络。
常见的协议
TCP传输协议,TCP协议负责把数据分为IP包,然后送到地方的时候在重新组合 买家和卖家关系
IP协议,IP协议负责数据的传输 通俗来讲 就是快递员
经常看到TCP/IP协议组合来说 为什么呢
TCP/IP协议联合起来叫网际协议 ,TPC负责把数据分割成IP包,然后IP负责把IP包送去通信的地方 在进行重新组合 买卖家与快递员的关系
除此之外还有吗
有http协议 也叫超文本传输,使用户浏览器与服务器相互交互的 默认端口是80
有https协议 安全的http协议 主要是在浏览器与服务器传输过程中进行了加密处理
有FTP 文件传输协议 可以用来上传文件或者在网上下载文件 基于TCP
有SMTP 邮件传送协议 主要用于发邮件 工作阶段分三步 第一 建立连接,第二 传输邮件,第三 断开连接
有POP03 邮件传输协议03版本 作用是下载邮件
有 Telnet 协议 主要是可以进行远程控制
端口
端口犹如一扇门 每一个服务需要打开这扇门才能进行进行连接,端口号就像是门牌号
常见的端口号
21/FTP 文件传输协议
22/SSH 远程安全登录
23/telent 远程登录
25/简单邮件传输协议
69/TFTP 简单的文件传输
80/HTTP 超文本传输
110/POP3邮件传输协议
443/HTTPS 安全的http超文本传输协议
3389/远程桌面登录
3306/MYSQL数据库
1080 Socks防火墙安全会话转换协议
关系型数据库
指采用了关系模型来组织数据的数据库。
关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系型数据库的优点:
1.容易理解 2.使用方便 3.易于维护
缺点:
1并发高 2.效率低 3.括展性能和负载能力差 4.性能欠佳
当今十大主流的关系型数据库
Oracle,Microsoft SQL Server,MySQL,PostgreSQL,DB2,Microsoft Access, SQLite,Teradata,MariaDB(MySQL的一个分支),SAP
非关系型数据库
指非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。
面向高性能并发读写的key-value数据库:key-value数据库的主要特点是具有极高的并发读写性能
主流代表为Redis, Amazon DynamoDB, Memcached,Microsoft Azure Cosmos DB和Hazelcast
面向海量数据访问的面向文档数据库:这类数据库的主要特点是在海量的数据中可以快速的查询数据
主流代表为MongoDB,Amazon DynamoDB,Couchbase,Microsoft Azure Cosmos DB和CouchDB
面向搜索数据内容的搜索引擎:主流代表为Elasticsearch,Splunk,Solr,MarkLogic和Sphinx
搜索引擎是专门用于搜索数据内容的NoSQL数据库管理系统。
面向可扩展性的分布式数据库:主流代表为Cassandra,HBase,Microsoft Azure Cosmos DB,Datastax Enterprise和Accumulo
HTTP请求的工作原理和步骤
HTTP工作的原理就是 客户端像服务端发送一个报文,然后服务端接受到这个报文然后作出回应 然后返回客户端信息。他分为5个步骤
1,首先客户端和服务端建立一个连接 三次握手
2,客户端开始发送一HTTP请求给服务端
3,服务端收到请求 然后把相应的信息给客户端
5,然后断开连接了 四次断开
6,客户端接收的信息在浏览器显示出来
三次握手四次挥手
这是一个建立连接的过程 就像在菜市场买东西与商铺的交互一样
1,询问菜的价格 第一次握手
2,老板回复说 2块钱一斤 第二次握手
3,买三斤 并把钱给了老板 第三次握手
4,老板不想理你了 四次断开
域名解析 DNS
把IP地址解析为简单易懂的,例:123.123.123.123解析为 www.taobao.com
HTTP请求方式
HTTP请求有八种方式 分别为
1OPTIONS
2 HEAD
3 GET
4 POST
5 PUT
6 DEETE
7 TRACE
8CONNECT
虽然方式很多 但是在日常方式中我们一般也就使用 GET 和 POST 的请求方式,参考:
那GET 和 POST 方式有什么区别呢
get 主要用于像指定的URL请求资源 可以带参数可以不带 带参数的时候是明文传输 可以在浏览器的地址看到参数的值 安全性不高 通常用于安全性较低的场合
post 主要是像指定的ur提交数据 ,通常在用于在一些表单发送 在URL看不到的 通常在注册在注册 登录 这些地方实现
使用GET来提交一些账号密码 这些重要数据 那么这个资料就会在URL显示 非常不安全
请求包是什么样的
状态码
网页服务器超文本传输协议响应状态的3位数字代码
~当服务器接收到一个包 他就会接到响应 然后就会回复3个数字
一般的状态码判断
1XX 信息状态码 服务器正在处理请求
2XX 成功状态码 请求处理完毕
3XX 重定向状态码 需要进行额外操作完全请求
4XX 客户端错误 客户端导致服务端无法处理请求
5XX 服务端错误 服务器原因导致请求错误
最常见的状态码
200 成功
204 成功 但是没资源
301 永久重定向 资源在其他URL里面 要更新URL
302 临时重定向 跟301差不多 但是这个是临时
400 报文中语法错误
401 未经许可 需要HTTP认证
403 服务器拒绝访问 访问权限有问题
404 在服务器上找不到资源
客户方错误
状态码 | 状态码英文名称 | 中文描述 |
100 | Continue | 继续。 客户端应继续其请求 |
101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 |
成功
状态码 | 状态码英文名称 | 中文描述 |
200 | ok | 请求成功。一般用于GET与POST请求 |
201 | Created | 已创建。成功请求并创建了新的资源 |
202 | Accepted | 已接受。 已经接受请求,但未处理完成 |
203 | Non-Authoritative Information | 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本 |
204 | No Content | 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
205 | Reset Content | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域 |
206 | Partial Content | 部分内容。服务器成功处理了部分GET请求 |
重定向
状态码 | 状态码英文名称 | 中文描述 |
300 | Multiple Choices | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择 |
301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
302 | Found | 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI |
303 | See Other | 查看其它地址。与301类似。使用GET和POST请求查看 |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 |
305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问 |
306 | Unused | 已经被废弃的HTTP状态码 |
307 | Temporary Redirect | 临时重定向。与302类似。使用GET请求重定向 |
客户端错误
状态码 | 状态码英文名称 | 中文描述 |
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
401 | Unauthorized | 请求要求用户的身份认证 |
402 | Payment Required | 保留,将来使用 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 |
405 | Method Not Allowed | 客户端请求中的方法被禁止 |
406 | Not Acceptable | 服务器无法根据客户端请求的内容特性完成请求 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 |
408 | Request Time-out | 服务器等待客户端发送的请求时间过长,超时 |
409 | Conflict | 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突 |
410 | Gone | 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置 |
411 | Length Required | 服务器无法处理客户端发送的不带Content-Length的请求信息 |
412 | Precondition Failed | 客户端请求信息的先决条件错误 |
413 | Request Entity Too Large | 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息 |
414 | Request-URI Too Large | 请求的URI过长(URI通常为网址),服务器无法处理 |
415 | Unsupported Media Type | 服务器无法处理请求附带的媒体格式 |
416 | Requested range not satisfiable | 客户端请求的范围无效 |
417 | Expectation Failed | 服务器无法满足Expect的请求头信息 |
服务端错误
状态码 | 状态码英文名称 | 中文描述 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求 |
502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
2 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理 |