# 【IT術語大雜燴】 <綜合小整理>[值得收藏備用熟記的IT常用術語](https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/523671/) ### 「標記式語言」 **置標語言、標記語言、標誌語言、標識語言、markup language** 1. 一種將文字(Text)以及文字相關的其他資訊結合起來,展現出關於文件結構和資料處理細節的電腦文字編碼。與文字相關的其他資訊(包括例如文字的結構和表示資訊等)與原來的文字結合在一起,但是使用標記(markup)進行標識。 2. 當今廣泛使用的標記式語言:**HTML**、**XML** 超文件標示語言(HyperText Markup Language,**HTML**) <<設計來表現資料 [可延伸標示語言(eXtensible Markup Language,**XML**)](https://zh.wikipedia.org/wiki/XML) <<設計來傳送及攜帶資料資訊 ### 「API」 **Application Programming Interface 應用程式介面** 扮演應用程式與應用程式之間的橋樑 ### [「RESTful API」](https://medium.com/itsems-frontend/api-%E6%98%AF%E4%BB%80%E9%BA%BC-restful-api-%E5%8F%88%E6%98%AF%E4%BB%80%E9%BA%BC-a001a85ab638) 1.REST,全名 Representational State Transfer( 表現層狀態轉移),他是一種設計風格,RESTful 只是轉為形容詞。 2.![](https://i.imgur.com/HpNfJ2P.png) 3.[重新認識HTTP請求方法](https://openhome.cc/Gossip/Programmer/HttpMethod.html) ### 「JSON」 **JavaScript Object Notation** 一種輕量級的資料交換語言 ### [「URI和URL的區別,URN又是什麼」](https://kknews.cc/zh-tw/code/8xxa6je.html) >1. **URI**是(uniform resource identifier)統一資源標識符,用來唯一的標識一個資源。 >2. **URL**是(uniform resource locator),統一資源定位器,它是一種具體的URI,即URL可以用來標識一個資源,而且還指明了如何locate這個資源。 >3. **URN**是(uniform resource name)統一資源命名,是通過名字來標識資源,比如mailto:java-net@java.sun.com。 ### [「OSI七層模型」](https://ithelp.ithome.com.tw/articles/10000021) >OSI模型是一種制定網路標準都會參考的**概念性架構**,依據網路運作方式,OSI模型共切分成7個不同的層級,每級按照網路傳輸的模式,定義所屬的規範及標準。 該模型是一種制定網路標準都會參考的概念性架構,並非一套標準規範,也不是用來提供實現的方法,而是透過觀念描述,協調各種網路功能發展時的標準制定。 ### [「token」](https://kknews.cc/zh-tw/code/nlrzzlq.html) >**Token**是用戶身份的驗證方式,通常叫它:令牌。當用戶第一次登錄後,伺服器生成一個Token並將此Token返回給客戶端,以後客戶端只需帶上這個Token前來請求數據即可,無需再次帶上用戶名和密碼。 > >**延伸閱讀:[徹底理解cookie,session,token](https://iter01.com/418092.html) ### [「Git與GitHub」](https://medium.com/@makerincollege2018/%E5%B7%A5%E7%A8%8B%E5%B8%AB%E5%BF%85%E6%87%82%E7%9A%84%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6%E6%8A%80%E8%A1%93-%E4%BB%80%E9%BA%BC%E6%98%AFgithub-376421fd871d) >1.**Git**>>>版本控制 >2.**GitHub** >>>商業網站,Gits的集散地(hub有center之意) > ### [「Callback Function」](https://blog.xuite.net/ilove.amio/DotnetAndroidSpace/334502722-%E5%8F%A6%E4%B8%80%E5%80%8BJava+Callback%E6%A9%9F%E5%88%B6%E6%8E%A2%E8%A8%8E%E7%AF%84%E4%BE%8B%E7%9A%84%E8%A7%A3%E6%9E%90) ### [「建造者模式(Builder Pattern)」](https://rongli.gitbooks.io/design-pattern/content/chapter4.html) ### [「各種設計模式」](https://openhome.cc/Gossip/DesignPattern/) ### 「Java 的 lambda寫法」 ``` // JDK7 匿名内部类写法 new Thread(new Runnable(){// 接口名 @Override public void run(){// 方法名 System.out.println("Thread run()"); } }).start(); ``` ``` // JDK8 Lambda表达式写法 new Thread( () -> System.out.println("Thread run()")// 省略接口名和方法名 ).start(); ``` ``` // JDK8 Lambda表达式代码块写法 new Thread( () -> { System.out.print("Hello"); System.out.println(" Hoolee"); } ).start(); ``` --- ``` // JDK7 匿名内部类写法 List<String> list = Arrays.asList("I", "love", "you", "too"); Collections.sort(list, new Comparator<String>(){// 接口名 @Override public int compare(String s1, String s2){// 方法名 if(s1 == null) return -1; if(s2 == null) return 1; return s1.length()-s2.length(); } }); ``` ``` // JDK8 Lambda表达式写法 List<String> list = Arrays.asList("I", "love", "you", "too"); Collections.sort(list, (s1, s2) ->{// 省略参数表的类型 if(s1 == null) return -1; if(s2 == null) return 1; return s1.length()-s2.length(); }); ``` ### [「匿名類別」](https://www.youtube.com/watch?v=9cbj788Aisg) >1.在創建某類別的時候(new Class()),不宣告一個變數空間去儲存其資料。 > (因為沒有宣告另一個空間存起來,所以沒有名字-->即"匿名"的意義) >2.介面與抽象類別也能用匿名類別的方式被創建,但因其不是實體,所以必須在建構子後補上{ }及實作抽象內容使其變成完整的實體。 > ### [「JWT」](https://5xruby.tw/posts/what-is-jwt/) (JSON Web Token) https://segmentfault.com/a/1190000005783306#item-11 ![](https://i.imgur.com/WTxjsGe.png) ![](https://i.imgur.com/hg0LzVO.png) ### [「OAuth」](https://zh.wikipedia.org/wiki/%E5%BC%80%E6%94%BE%E6%8E%88%E6%9D%83)   開放授權(OAuth)是一個開放標準,允許用戶讓第三方應用存取該用戶在某一網站上儲存的私密的資源(如相片,影片,聯絡人列表),而無需將用戶名稱和密碼提供給第三方應用。   OAuth允許用戶提供一個權杖(token),而不是用戶名稱和密碼來存取他們存放在特定服務提供者的資料。每一個權杖授權一個特定的網站(例如,影片編輯網站)在特定的時段(例如,接下來的2小時內)內存取特定的資源(例如僅僅是某一相簿中的影片)。這樣,OAuth讓用戶可以授權第三方網站存取他們儲存在另外服務提供者的某些特定資訊,而非所有內容。 ### [「OIDC」](https://zh.wikipedia.org/wiki/OpenID) (OpenID Connect) ### [「PKCE」](https://juejin.im/entry/5b5955cbe51d45198f5c88fe)