1. 程式人生 > >web應用與http協議

web應用與http協議

web:應用:

  Web應用程式是一種可以通過Web訪問的應用程式,程式的最大好處是使用者很容易訪問應用程式,使用者只需要有瀏覽器即可,不需要再安裝其他軟體。應用程式有兩種模式C/S、B/S.

C/S是客戶端/伺服器端程式,也就是說這類程式一般獨立執行。

B/S就是瀏覽器端/伺服器端應用程式,這類應用程式一般藉助谷歌,火狐等瀏覽器來執行。

WEB應用程式一般是B/S模式。Web應用程式首先是“應用程式”,和用標準的程式語言,如java,python等編寫出來的程式沒有什麼本質上的不同。在網路程式設計的意義下,瀏覽器是一個socket客戶端,伺服器是一個socket服務端。

import socket

def handle_request(client):

    request_data 
= client.recv(1024) print("request_data: ",request_data) client.send("HTTP/1.1 200 OK\r\nstatus: 200\r\nContent-Type:text/html\r\n\r\n".encode("utf8")) client.send("<h1>Hello, web!</h1><img src=''>".encode("utf8")) def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind((
'localhost',8812)) sock.listen(5) while True: print("the server is waiting for client-connection....") connection, address = sock.accept() handle_request(connection) connection.close() if __name__ == '__main__': main()
案例

 

http協議:

  簡介:

    HTTP協議是Hyper Text Transfer Protocol(超文字傳輸協議)的縮寫,是用於全球資訊網(WWW:World Wide Web )伺服器與本地瀏覽器之間傳輸超文字的傳送協議。

  HTTP是一個屬於應用層的面向物件的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和擴充套件。HTTP協議工作於客戶端-服務端架構為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB伺服器傳送所有請求。Web伺服器根據接收到的請求後,向客戶端傳送響應資訊。

1.http協議的特性:

  1.基於請求響應:

    瀏覽器先給伺服器傳送請求------->伺服器收到瀏覽器的請求後返回響應.

        

  2.基於TCP/IP:在OSI七層模型中,http屬於最高層的應用層,它把TCP/IP進行封裝,所以說http協議基於TCP/IP協議.

  3.無狀態儲存:

  4.無連線:   無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間

2.請求協議格式:

url: 協議://域名(IP)+埠(80) /路徑 ? 引數()

路徑:域名之後,問號之前的都是路徑.

請求首行:   請求方式url (路徑?   get請求引數)

請求頭:   key:value     可以有多個   協議/版本號

 

請求體: 資料(只有post請求的時候才會有請求體)

  get請求和post請求:

  • GET提交的資料會放在URL之後,以?分割URL和傳輸資料,引數之間以&相連,如EditBook?name=test1&id=123456. POST方法是把提交的資料放在HTTP包的請求體中.
  • GET提交的資料大小有限制(因為瀏覽器對URL的長度有限制),而POST方法提交的資料沒有限制.
  • GET與POST請求在服務端獲取請求資料方式不同。

3.響應協議格式:

響應首行: 放協議/版本號 狀態碼 狀態碼譯文/r/n
    http/1.1 200 ok/r/n          #/r/n起分割符的作用,區分作用
響應頭: 以鍵值對的形式存在,可有有若干個       #Content-Type:text/html /r/n/r/n
響應體: 渲染到瀏覽器中的內容. <h1> hello 響應體!</h1>

 響應狀態碼:

狀態碼: 是當客戶端向伺服器端傳送請求時, 返回的請求 結果。藉助狀態碼,使用者可以知道伺服器端是正常 理了請求,還是出 現了 。狀態碼如200 OK,以3位數字和原因 成。數字中的 一位指定了響應 別,後兩位無分 。響應 別有以5種。