精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Http是什么

汽車電子技術(shù) ? 來源:程序猿知秋 ? 作者:程序猿知秋 ? 2023-01-20 15:27 ? 次閱讀

Http是什么?

基本概念

  • **HTTP是超文本傳輸協(xié)議(HyperText Transfer Protocol)的簡稱,它建立在C/S架構(gòu)的應(yīng)用層協(xié)議。

    **

  • **HTTP、FTP、Telnet等協(xié)議都是建立在TCP/IP協(xié)議基礎(chǔ)上的,而TCP/IP協(xié)議是協(xié)議層的內(nèi)容,它定義了計算機間通信的基礎(chǔ)協(xié)議。

    **

  • **在HTTP協(xié)議中,客戶端負(fù)責(zé)發(fā)起一個Request,該Request中含有請求方法、URL、協(xié)議版本等信息,服務(wù)端在接受到該Request后會返回一個Response,該Response中含有狀態(tài)碼、響應(yīng)內(nèi)容等信息,這一模型稱為請求/響應(yīng)模型。

    **

  • HTTP協(xié)議通信的核心是HTTP報文,我們將其分為請求報文和響應(yīng)報文。其中,由客戶端發(fā)出的HTTP報文稱為請求報文,由服務(wù)端發(fā)出的報文稱為響應(yīng)報文.

請求報文:請求報文通常由瀏覽器來發(fā)起,當(dāng)我們訪問一個網(wǎng)頁或者請求一個資源的時候都會產(chǎn)生請求報文

  • 請求報文通常由HTTP請求行、請求頭、消息體(可選)三部分組成
// 基本請求信息
Request URL: https://www.baidu.com 
Request Method: GET      
Status Code: 200 OK    
Remote Address: 111.206.209.78:443
Referrer Policy: unsafe-url


//請求頭
Accept: application/json, text/javascript, q=0.01
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: no-cache
Connection: keep-alive
Cookie: BIDUPSID=344D077FD6A3F97616DBD66A24EBDC96
Host: zhidao.baidu.com
Pragma: no-cache
Referer: https://zhidao.baidu.com/question/366757430246244692.html
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
X-ik-ssl: 1
X-Requested-With: XMLHttpRequest


//請求參數(shù)
...

請求參數(shù)解析

  • **Host: 請求目標(biāo)的網(wǎng)站

    **

  • **Connection: 默認(rèn)為“keep-Alive“,默認(rèn)支持長連接

    **

  • **Cache-Control:這玩意跟緩存有關(guān),其中no-cache表示無緩存

    **

  • **User-Agent:告訴serve 這個client的身份,一般由瀏覽器決定,比如:瀏覽器類型,版本等等

    **

  • **Accept:以及后面的Accept打頭的都是表明client能夠接收的種類和類型

    **

  • Cookie:一般會將登錄的一些信息放在cookie中

響應(yīng)報文:響應(yīng)報文是指在服務(wù)端接收并處理了客戶端的請求信息以后,服務(wù)端發(fā)送給客戶端的HTTP報文

// 響應(yīng)狀態(tài) ,200 表示成功
HTTP/1.1 200 OK


/* 響應(yīng)頭部 */
Access-Control-Allow-Headers: X-ik-ssl,X-ik-token,X-ik-utdata,X-ik-appid,X-ik-cuid,X-ik-fc,X-swan-version,X-ik-tries,X-fail,X-ik-appversion,X-ik-appname,Content-Type,SWAN_UPGRADE_CHECK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 21
Content-Type: text/html
Date: Fri, 23 Dec 2022 11:49:43 GMT
Not-Try: 0
Server: Apache
Vary: Accept-Encoding
Wait: 2


/* 響應(yīng)信息 */
...

響應(yīng)參數(shù)解析

  • **Http/1.1 200 OK:200表示返回的狀態(tài)碼是正常,OK則是描述性的狀態(tài)碼

    **

  • **Date:表示服務(wù)器響應(yīng)的時間

    **

  • **Server: 響應(yīng)客戶端的服務(wù)器。

    **

  • **Content-Length:表示服務(wù)器返回給客戶端正文的字節(jié)流長度

    **

  • **Content-Type:表示正文的類型

    **

  • Content-Encoding:文檔類型的編碼方式,服務(wù)器端采用gzip的形式進(jìn)行了文檔壓縮

Http的基本應(yīng)用

常見的方法有GET、POST 兩種http請求方式

  • **GET:最為常見的一種請示方式。當(dāng)客戶端從服務(wù)器讀取文檔或者通過一個鏈接來訪問頁面的時候,都是采用GET方式來請求的

    **

  • **POST:POST克服了GET方式對參數(shù)長度存在限制的缺點,以鍵-值形式將參數(shù)封裝在HTTP請求中,所以從理論上講它對參數(shù)長度沒有限制,但是實際上各個服務(wù)器會規(guī)定對POST提交數(shù)據(jù)大小進(jìn)行限制;

    **

  • 注: POST的安全性比GET的高,因?qū)τ脩魜碇v參數(shù)傳遞過程是不可見的。 類似用戶登錄之類的基本都是采用post形式

HTTP中的五種響應(yīng)碼

  • 1xx:指示信息--表示請求已接收,繼續(xù)處理
  • 2xx:成功--表示請求已被成功接收、理解、接受
  • 3xx:重定向--要完成請求必須進(jìn)行更進(jìn)一步的操作
  • 4xx:客戶端錯誤--請求有語法錯誤或請求無法實現(xiàn)
  • 5xx:服務(wù)器端錯誤--服務(wù)器未能實現(xiàn)合法的請求

!微信截圖_20230105161930.png

編輯

HttpWebRequest 簡單的HTTP請求案例

GET方式:

public static string doGet()
{
    string url="www.baidu.com";
  //創(chuàng)建
  HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
  //設(shè)置請求方法
  httpWebRequest.Method = "GET";
  //請求超時時間
  httpWebRequest.Timeout = 30000;
  //發(fā)送請求
  HttpWebResponse response=null;
  Stream s = null;
  StreamReader sRead = null;
  string postContent = null;
  try
  {
    //獲得響應(yīng)流
    response = (HttpWebResponse)httpWebRequest.GetResponse();
    s = response.GetResponseStream();
    sRead = new StreamReader(s);
    postContent = sRead.ReadToEnd();
  }
  catch (WebException ex)
  {
    response = ex.Response as HttpWebResponse;
    log.Error(ex.Message.ToString(), ex);
  }
  finally
  {
    if(sRead != null)
    {
      sRead.Close(); 
    }
    if(s != null)
    {
      s.Close();
    }
    if(response != null)
    {
      response.Close();
    }
  }
  return postContent;//返回Json數(shù)據(jù)
}

POST方式:

public static string doPost()
{
  string strURL = "wwww.baidu.com";
  //創(chuàng)建一個HTTP請求  
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
  //Post請求方式  
  request.Method = "POST";
  //內(nèi)容類型
  request.ContentType = "application/json";
  request.Accept = "application/json";
  //將Json字符串轉(zhuǎn)化為字節(jié)  
  byte[] payload = System.Text.Encoding.UTF8.GetBytes(jsonParas);
  //設(shè)置請求的ContentLength   
  request.ContentLength = payload.Length;
  //發(fā)送請求,獲得請求流 
  Stream writer;
  try
  {
    writer = request.GetRequestStream();//獲取用于寫入請求數(shù)據(jù)的Stream對象
  }
  catch (Exception ex)
  {
    log.Error("連接服務(wù)器失敗!" + ex.Message.ToString(), ex);
    throw ex;
  }
  //將請求參數(shù)寫入流
  writer.Write(payload, 0, payload.Length);
  writer.Close();//關(guān)閉請求流
  HttpWebResponse response = null;
  Stream s = null;
  StreamReader sRead = null;
  string postContent = null;
  try
  {
    //獲得響應(yīng)流
    response = (HttpWebResponse)request.GetResponse();
    s = response.GetResponseStream();
    sRead = new StreamReader(s);
    postContent = sRead.ReadToEnd();
  }
  catch (WebException ex)
  {
    response = ex.Response as HttpWebResponse;
    log.Error(ex.Message.ToString(), ex);
  }
  finally
  {
    if (sRead != null)
    {
      sRead.Close();
    }
    if (s != null)
    {
      s.Close();
    }
    if (response != null)
    {
      response.Close();
    }
  }
  return postContent;//返回Json數(shù)據(jù)
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    501

    瀏覽量

    31065
  • 傳輸協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    11439
  • 架構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    509

    瀏覽量

    25447
收藏 人收藏

    評論

    相關(guān)推薦

    HTTP、TCP、QUIC協(xié)議詳解

    HTTP 3.0 是 HTTP 協(xié)議的第三個主要版本,前兩個分別是 HTTP 1.0 和 HTTP 2.0 ,但其實 HTTP 1.1 我認(rèn)
    發(fā)表于 07-25 11:58 ?1618次閱讀

    33.033 HTTP協(xié)議 初識HTTP協(xié)議

    編程HTTP
    充八萬
    發(fā)布于 :2023年07月19日 14:28:59

    使用http代理究竟什么原因?

    HTTP
    jf_62215197
    發(fā)布于 :2024年05月13日 07:42:55

    講解HTTP代理類別,使用設(shè)置,測試HTTP代理方法

    HTTP
    jf_62215197
    發(fā)布于 :2024年07月19日 07:03:46

    HTTP性能

    HTTP性能              HTTP協(xié)議(Hypertext Transfer Protocol,超文本傳輸協(xié)議)是用于從WWW服務(wù)器傳輸超文本到本地瀏
    發(fā)表于 01-08 13:50 ?905次閱讀

    什么是HTTP

    什么是HTTP  英文原義:Hyper Text Transfer Protocol 中文釋義:超文本傳輸協(xié)議 注  解:該
    發(fā)表于 02-23 11:40 ?671次閱讀

    HTTP,HTTP協(xié)議的作用是什么?

    HTTP,HTTP協(xié)議的作用是什么? HTTP:Hypertext Transfer Protocol 超文本傳輸協(xié)議(HTTP)是應(yīng)用層協(xié)議,由于其簡捷、快速的方式,適用于分
    發(fā)表于 03-22 10:45 ?2.5w次閱讀

    HTTP協(xié)議培訓(xùn)教程資料

    HTTP協(xié)議培訓(xùn)教程資料 協(xié)議基礎(chǔ)  HTTP(HyperText Transfer Protocol)是超文本傳輸協(xié)議的縮寫,它用于傳送WWW方式的數(shù)據(jù),關(guān)于HTTP協(xié)議
    發(fā)表于 03-22 10:47 ?581次閱讀

    http抓包神器(http analyzer )下載

    HTTP Analyzer Full V7是一款完全漢化免費的綠色版HTTP協(xié)議捕捉分析工具,這款http analyzer 綠色版可以進(jìn)行網(wǎng)絡(luò)抓包等功能,馬上下載這款http ana
    發(fā)表于 12-14 08:35 ?0次下載

    http和tcp/ip、http https之間的關(guān)系和區(qū)別

    http和tcp/ip、http和https之間的關(guān)系和區(qū)別
    的頭像 發(fā)表于 01-10 14:30 ?7452次閱讀

    http和https有什么區(qū)別,為什么https會取代http

    大家都知道當(dāng)前https的使用更為普遍,為什么https會取代http,其中的原因恒訊科技為大家整理在本文,共有11點希望可以幫助大家更了解網(wǎng)站數(shù)據(jù)安全。 1、傳輸方式 http使用的是明文
    的頭像 發(fā)表于 05-11 16:02 ?1928次閱讀

    HTTP的狀態(tài)消息

     HTTP狀態(tài)消息是指HTTP服務(wù)器在響應(yīng)客戶端請求時返回的狀態(tài)信息。狀態(tài)消息由數(shù)字狀態(tài)碼和可選的文本描述組成,主要有以下幾種類型
    發(fā)表于 05-06 16:01 ?483次閱讀

    HTTP/3 來了,它比 HTTP/1 和 HTTP/2 強在哪兒?

    前言通過這篇文章你可以了解到:1.什么是HTTP協(xié)議?2.HTTP1.1/2.0/3.0的發(fā)展變更3.HTTP1.1/2.0/3.0的主要區(qū)別4.HTTP3.0進(jìn)化發(fā)展的意義什么是
    的頭像 發(fā)表于 08-28 15:35 ?1398次閱讀
    <b class='flag-5'>HTTP</b>/3 來了,它比 <b class='flag-5'>HTTP</b>/1 和 <b class='flag-5'>HTTP</b>/2 強在哪兒?

    什么是HTTP?什么是HTTPS?HTTP與HTTPS的區(qū)別在哪?

    每天都在上網(wǎng),在搜索東西的時候,你有發(fā)現(xiàn)網(wǎng)址有什么不同嗎?本文就來談?wù)?b class='flag-5'>HTTP與HTTPS有什么不同。
    的頭像 發(fā)表于 08-27 09:15 ?3873次閱讀
    什么是<b class='flag-5'>HTTP</b>?什么是HTTPS?<b class='flag-5'>HTTP</b>與HTTPS的區(qū)別在哪?