2019年3月3日 星期日

HTTP 的訊息格式處理



HTTP  的訊息格式 (Text Format) 大致如下: 

Method     URL   Protocol \r\n          
key: value  \r\n
key: value  \r\n
key: value  \r\n
\r\n
HTML data

例如




HTTP Header 訊息每列以 \n 或 \r\n 換行, 若某一行為\\r\n 或 \n 沒有任何字 表示Header結尾。 訊息中也可能包含不定數量的空白(依程式實作者而定)

底下利用C函式的字串處理函數strpbrk(), strspn() 進行字串解析, 抓到你想要的欄位值。

protocol -->  "HTTP/1.1"
Method-->  "GET"
URL-->  "/doc/test.html"
Host--< www.test101.com
...






strpbrk()

  int len;
   const char str1[] = "ABCDEFG019874";
   const char str2[] = "BCD";

   char *str = strpbkr(str1, str2)   ==> str="BCDEFG019874"


 strspn()



   int len;
   const char str1[] = "ABCDEFG019874";
   const char str2[] = "ABCD";

   len = strspn(str1, str2)   ==> len=4


相關課程:








沒有留言 :

張貼留言