衡阳派盒市场营销有限公司

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

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

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

Http是什么

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

Http是什么?

基本概念

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

    **

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

    **

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

    **

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

請(qǐng)求報(bào)文:請(qǐng)求報(bào)文通常由瀏覽器來(lái)發(fā)起,當(dāng)我們?cè)L問(wèn)一個(gè)網(wǎng)頁(yè)或者請(qǐng)求一個(gè)資源的時(shí)候都會(huì)產(chǎn)生請(qǐng)求報(bào)文

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


//請(qǐng)求頭
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


//請(qǐng)求參數(shù)
...

請(qǐng)求參數(shù)解析

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

    **

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

    **

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

    **

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

    **

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

    **

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

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

// 響應(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)的時(shí)間

    **

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

    **

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

    **

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

    **

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

Http的基本應(yīng)用

常見的方法有GET、POST 兩種http請(qǐng)求方式

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

    **

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

    **

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

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

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

!微信截圖_20230105161930.png

編輯

HttpWebRequest 簡(jiǎn)單的HTTP請(qǐng)求案例

GET方式:

public static string doGet()
{
    string url="www.baidu.com";
  //創(chuàng)建
  HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
  //設(shè)置請(qǐng)求方法
  httpWebRequest.Method = "GET";
  //請(qǐng)求超時(shí)時(shí)間
  httpWebRequest.Timeout = 30000;
  //發(fā)送請(qǐng)求
  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)建一個(gè)HTTP請(qǐng)求  
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
  //Post請(qǐng)求方式  
  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è)置請(qǐng)求的ContentLength   
  request.ContentLength = payload.Length;
  //發(fā)送請(qǐng)求,獲得請(qǐng)求流 
  Stream writer;
  try
  {
    writer = request.GetRequestStream();//獲取用于寫入請(qǐng)求數(shù)據(jù)的Stream對(duì)象
  }
  catch (Exception ex)
  {
    log.Error("連接服務(wù)器失敗!" + ex.Message.ToString(), ex);
    throw ex;
  }
  //將請(qǐng)求參數(shù)寫入流
  writer.Write(payload, 0, payload.Length);
  writer.Close();//關(guān)閉請(qǐng)求流
  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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    511

    瀏覽量

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

    關(guān)注

    0

    文章

    78

    瀏覽量

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

    關(guān)注

    1

    文章

    519

    瀏覽量

    25551
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    講解HTTP代理類別,使用設(shè)置,測(cè)試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 ?917次閱讀

    什么是HTTP

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

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

    HTTP,HTTP協(xié)議的作用是什么? HTTP:Hypertext Transfer Protocol 超文本傳輸協(xié)議(HTTP)是應(yīng)用層協(xié)議,由于其簡(jiǎn)捷、快速的方式,適用于分
    發(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 ?596次閱讀

    http抓包神器(http analyzer )下載

    HTTP Analyzer Full V7是一款完全漢化免費(fèi)的綠色版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 ?7573次閱讀

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

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

    HTTP的狀態(tài)消息

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

    HTTP/3 來(lái)了,它比 HTTP/1 和 HTTP/2 強(qiáng)在哪兒?

    前言通過(guò)這篇文章你可以了解到: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 ?1565次閱讀
    <b class='flag-5'>HTTP</b>/3 來(lái)了,它比 <b class='flag-5'>HTTP</b>/1 和 <b class='flag-5'>HTTP</b>/2 強(qiáng)在哪兒?

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

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

    HTTP 1.1 和 HTTP 2.0 的區(qū)別

    HTTP(超文本傳輸協(xié)議)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的協(xié)議之一,用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)。隨著技術(shù)的發(fā)展,HTTP協(xié)議也在不斷地更新和優(yōu)化。HTTP/1.1是1999年發(fā)布的,而HTTP
    的頭像 發(fā)表于 12-30 09:25 ?304次閱讀
    棋牌乐| 百家乐技巧技巧| 电玩城百家乐官网技巧| tt娱乐城怎么样| 网上百家乐记牌软件| 百家乐官网的玩法技巧和规则| 宝鸡市| 威尼斯人娱乐城最新网址| 百家乐视频象棋| 百家乐官网游戏技巧| 娱乐城开户送金| 百家乐博赌城| 百家乐官网真人赌场娱乐网规则 | 威尼斯人娱乐城玩百家乐| 百家乐赚钱项目| 百家乐官网桌德州扑克桌| 八大胜开户| 免费百家乐统计工具| 属虎和属猴牛人做生意| 百家乐官网那个平台信誉高| 龙虎斗| 威尼斯人娱乐场 送2688元礼金领取lrm64| 做生意怕路冲吗| 百家乐官网l23| 义马市| 大发888官网 官方| 百家乐技术辅助软件| 赢家百家乐官网的玩法技巧和规则| 百家乐官网注册赠金| 棋牌平台| 大发888娱乐场下载com| 百家乐群boaicai| 百家乐官网赌场程序| 百家乐官网破解视频| 六合彩聊天室| 威尼斯人娱乐场有什么玩 | 聚龍社百家乐官网的玩法技巧和规则| 网上百家乐官网如何作假| 温州牌九| 大发888下载安全的| 职业百家乐的玩法技巧和规则|