Restful levels&HATEOAS:java
什麼是RESTful:mysql
REST這個詞,是Roy Thomas Fielding在他2000年的博士論文中提出的。翻譯過來就是"表現層狀態轉化。」Fielding在論文中將REST定位爲「分佈式超媒體應用(Distributed Hypermedia System)」的架構風格,它在文中提到一個名爲「HATEOAS(Hypermedia as the engine of application state)」的概念。git
什麼是HATEOAS:github
{"link": { "rel": "collection https://www.example.com/zoos", "href": "https://api.example.com/zoos", "title": "List of zoos", "type": "application/vnd.yourformat+json" }}
上面代碼表示,文檔中有一個link屬性,用戶讀取這個屬性就知道下一步該調用什麼API了。rel表示這個API與當前網址的關係(collection關係,並給出該collection的網址),href表示API的路徑,title表示API的標題,type表示返回類型。
Hypermedia API的設計被稱爲HATEOAS。Github的API就是這種設計,訪問api.github.com會獲得一個全部可用API的網址列表。spring
{
"current_user_url": "https://api.github.com/user", "authorizations_url": "https://api.github.com/authorizations", // ... }
從上面能夠看到,若是想獲取當前用戶的信息,應該去訪問api.github.com/user,而後就獲得了下面結果。sql
{
"message": "Requires authentication", "documentation_url": "https://developer.github.com/v3" }
層次的意義:數據庫
Level 1經過使用分而治之來解決處理複雜性的問題,將大型服務端點分解爲多個資源。json
Level 2引入了一組標準動詞,以便咱們以相同的方式處理相似的狀況,消除沒必要要的變化。canvas
Level 3引入了可發現性,提供了一種使協議更加自我記錄的方法。api
什麼是LDAP?
(一)在介紹什麼是LDAP以前,咱們先來複習一個東西:「什麼是目錄服務?」
1. 目錄服務是一個特殊的數據庫,用來保存描述性的、基於屬性的詳細信息,支持過濾功能。
2. 是動態的,靈活的,易擴展的。
如:人員組織管理,電話簿,地址簿。
(二)瞭解完目錄服務後,咱們再來看看LDAP的介紹:
LDAP(Light Directory Access Portocol),它是基於X.500標準的輕量級目錄訪問協議。
目錄是一個爲查詢、瀏覽和搜索而優化的數據庫,它成樹狀結構組織數據,相似文件目錄同樣。
目錄數據庫和關係數據庫不一樣,它有優異的讀性能,但寫性能差,而且沒有事務處理、回滾等複雜功能,不適於存儲修改頻繁的數據。因此目錄天生是用來查詢的,就好象它的名字同樣。
LDAP目錄服務是由目錄數據庫和一套訪問協議組成的系統。
優點:
LDAP是開放的Internet標準,支持跨平臺的Internet協議,在業界中獲得普遍承認的,而且市場上或者開源社區上的大多產品都加入了對LDAP的支持,所以對於這類系統,不需單獨定製,只須要經過LDAP作簡單的配置就能夠與服務器作認證交互。「簡單粗暴」,能夠大大下降重複開發和對接的成本。
LDAP目錄樹概念:
1. 目錄樹:在一個目錄服務系統中,整個目錄信息集能夠表示爲一個目錄信息樹,樹中的每一個節點是一個條目。
2. 條目:每一個條目就是一條記錄,每一個條目有本身的惟一可區別的名稱(DN)。
3. 對象類:與某個實體類型對應的一組屬性,對象類是能夠繼承的,這樣父類的必須屬性也會被繼承下來。
4. 屬性:描述條目的某個方面的信息,一個屬性由一個屬性類型和一個或多個屬性值組成,屬性有必須屬性和非必須屬性
spring history:
2004年 Spring Framework 1.0 final
正式問世。
1.在Spring1.x時代,都是經過xml文件配置bean,隨着項目的不斷擴大,須要將xml配置分放到不一樣的配置文件中,須要頻繁的在java類和xml配置文件中切換。
2.隨着JDK 1.5帶來的註解支持,Spring2.x可使用註解對Bean進行申明和注入,大大的減小了xml配置文件,同時也大大簡化了項目的開發。
3.從Spring3.x開始提供了Java配置方式,使用Java配置方式能夠更好的理解你配置的Bean,如今咱們就處於這個時代,而且Spring4.x和Spring boot都推薦使用java配置的方式。
Java配置是Spring4.x推薦的配置方式,能夠徹底替代xml配置。
(Spring的Java配置方式是經過 @Configuration 和 @Bean 這兩個註解實現的:
一、@Configuration 做用於類上,至關於一個xml配置文件;
二、@Bean 做用於方法上,至關於xml配置中的<bean>;)
CORS是什麼:
CORS(Cross-Origin Resource Sharing 跨源資源共享),當一個請求url的協議、域名、端口三者之間任意一與當前頁面地址不一樣即爲跨域。
例如最多見的,在一個域名下的網頁中,調用另外一個域名中的資源。
出於安全緣由,瀏覽器限制從腳本內發起的跨源HTTP請求。(並不必定是瀏覽器限制了發起跨站請求,也多是跨站請求能夠正常發起,可是返回結果被瀏覽器攔截了。)
跨域資源共享( CORS )機制容許 Web 應用服務器進行跨域訪問控制,從而使跨域數據傳輸得以安全進行。現代瀏覽器支持在 API 容器中(例如 XMLHttpRequest
或 Fetch )使用 CORS,以下降跨域 HTTP 請求所帶來的風險。
CORS的做用:
爲了改善網絡應用程序,開發人員要求瀏覽器供應商容許跨域請求。跨域請求主要用於:
調用XMLHttpRequest或fetchAPI經過跨站點方式訪問資源
網絡字體,例如Bootstrap(經過CSS使用@font-face 跨域調用字體)
經過canvas標籤,繪製圖表和視頻。
什麼狀況下須要 CORS:
跨域資源共享標準( cross-origin sharing standard )容許在下列場景中使用跨域 HTTP 請求:
由 XMLHttpRequest 或 Fetch 發起的跨域 HTTP 請求。
Web 字體 (CSS 中經過 @font-face 使用跨域字體資源), 所以,網站就能夠發佈 TrueType 字體資源,並只容許已受權網站進行跨站調用。
WebGL 貼圖
使用 drawImage 將 Images/video 畫面繪製到 canvas
樣式表(使用 CSSOM)
CORS實現:
CORS也有一些限制,兩種模型能夠實現:
1.轉到https://dev.mysql.com/downloads/repo/apt/上的MySQL APT存儲庫的下載頁面,
選擇並下載適用於Linux發行版的發行包的下載路徑 ,
使用如下命令下載:
1
|
wget https:
//dev
.mysql.com
/get/mysql-apt-config_0
.8.12-1_all.deb
|
2.使用如下命令安裝下載的發行包,替換 version-specific-package-name
爲下載的包的名稱(若是未在包所在的文件夾中運行命令,則以其路徑開頭):
1
|
sudo
dpkg -i
/PATH/version-specific-package-name
.deb
|
個人在當前文件下運行的是如下命令:
1
|
sudo
dpkg -i mysql-apt-config_0.8.12-1_all.deb
|
注:中間彈窗直接↓到點」OK「
3.使用如下命令從MySQL APT存儲庫更新包信息(此步驟是必需的):
1
|
sudo
apt-get update
|
1
|
sudo
apt-get
install
mysql-server
|
注:
其中兩個彈窗
第一個是確認密碼(設置數據庫密碼)
另外一個是選擇加密方式,工具較新選第一個,較老選第二個
下載時間略長稍做等待,到這就安裝完成啦
開放遠程訪問,以鏈接可視化圖形界面
1.鏈接到數據庫
1
|
mysql -u root -p
|
輸入密碼
2.查看數據庫會看到有一個mysql
1
|
show databases;
|
3.選擇當前使用數據庫爲mysql
1
|
use mysql;
|
4.查看權限
1
|
select
host,
user
, authentication_string, plugin
from
user
;
|
5.更改加密方式
******是數據庫密碼
1
|
ALTER
USER
'root'
@
'localhost'
IDENTIFIED
WITH
mysql_native_password
BY
'******'
;
|
1
|
grant
all
on
*.*
to
'root'
@
'%'
;
|
7.執行刷新權限
1
|
flush
privileges
;
|
另有一個update的方式可參考https://blog.csdn.net/qq_40147863/article/details/86485439?tdsourcetag=s_pctim_aiomsg
update對錶結構直接修改若是把%寫錯成/,就會形成root帳戶就登錄不了了,使用需謹慎
所以咱們通常使用mysql裏面的命令