在開發網頁伺服器之前,必須了解網際網路資料傳輸的基本背景知識。今天的內容是簡單介紹常被忽略的網際網路知識之Protocal(通訊協定)的概念。
Protocol(通訊協定)指的是在網際網路中兩個端點通訊時必須遵守的規則,就網站系統而言,是使用者端與伺服器端都需要理解並使用的特定規則,通訊協定有許多類型,例如TCP/IP、HTTP、FTP、SMTP都是通訊協定。
TCP(Transmission Control Protocol,傳輸控制協定)和IP(Internet Protocol,網際網路協定)是網際網路基礎通訊架構下最早通過的標準,TCP是負責在網際網路中傳輸資料的協定;IP作為網際網路中識別的協定,紀錄網際網路的位址。
在網際網路中以socket連結端點並作為資料傳輸的機制,資料格式會以HTTP、FTP、SMTP等通訊協定規範,並透過TCP將資料分成封包(packet)後傳輸。
為了連結的端點位址並提供傳送的通道,socket會以IP及埠(port)組成socket位址,藉由埠可以確認接收或處理被傳遞的資料的程式。
HTTP(HyperText Transfer Protocol,超文本傳輸協定)是一個在網頁上傳輸資料的規則,遵循該協定的資料包含:*.html、*.js、*.css、*.img等,資料透過HTTP協定以特定規格傳送,架構包含:紀錄連線的狀態的Status、記錄相關資訊的Headers與主要資料內容Body,其中Headers內容的Content-Type是主要標記資料類型的部份,以MIME(Multipurpose Internet Mail Extensions)格式紀錄,記錄的格式為類型/次類型,例如:text/html、application/json、image/jpeg等。
雖然這些關於網際網路的基礎知識在開發的過程中也可能不會用到,但補充這些相關的概念之後,在除錯的過程中也會有所幫助,例如連線問題的釐清、資料傳遞的錯誤等等。
https://sites.google.com/site/wangjiwanglumingcijieshao/home/tcp-ip
https://zh.wikipedia.org/wiki/網路插座
https://zh.wikipedia.org/wiki/多用途互聯網郵件擴展
Learn and Understand NodeJS [課程]