HTTP協(xié)議簡(jiǎn)介

1.簡(jiǎn)介:

HTTP協(xié)議(HyperText Transfer Protocol门怪,超文本傳輸協(xié)議)是因特網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)傳輸協(xié)議免姿,所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)丰歌。 用于客戶端和服務(wù)器之間的通信。

HTTP協(xié)議

2.URL簡(jiǎn)介:

以:http://127.0.0.1/test.php?name=yk&passward=123 為例子講解:

  • 協(xié)議部分:該URL的協(xié)議部分為“http:”机断,這代表網(wǎng)頁(yè)使用的是HTTP協(xié)議畸颅。在”HTTP”后面的“//”為分隔符
  • 域名部分:該URL的域名部分為“127.0.0.1”。
  • 端口部分:跟在域名后面的是端口讨衣,域名和端口之間使用“:”作為分隔符换棚。如果使用默認(rèn)端口(80端口),可以不再URL中寫(xiě)出來(lái)(在Web瀏覽器中反镇,默認(rèn)使用的端口號(hào)是HTTP的80端口和HTTPS的443端口)
  • 虛擬目錄部分:從域名后的第一個(gè)“/”開(kāi)始到最后一個(gè)“/”為止固蚤,是虛擬目錄部分。虛擬目錄也不是一個(gè)URL必須的部分歹茶。
  • 文件名部分:從域名后的最后一個(gè)“/”開(kāi)始到“夕玩?”為止你弦,是文件名部分,如果沒(méi)有“?”,則是從域名后的最后一個(gè)“/”開(kāi)始到“#”為止风秤,是文件部分鳖目,如果沒(méi)有“?”和“#”缤弦,那么從域名后的最后一個(gè)“/”開(kāi)始到結(jié)束领迈,都是文件名部分。本例中的文件名是“test.php”碍沐。文件名部分也不是一個(gè)URL必須的部分狸捅,如果省略該部分,則使用默認(rèn)的文件名
  • 錨部分:從“#”開(kāi)始到最后累提,都是錨部分尘喝。錨部分也不是一個(gè)URL必須的部分
  • 參數(shù)部分:從“?”開(kāi)始到“#”為止之間的部分為參數(shù)部分斋陪,又稱搜索部分朽褪、查詢部分。本例中的參數(shù)部分為“name=yk&passward=123”无虚。參數(shù)可以允許有多個(gè)參數(shù)缔赠,參數(shù)與參數(shù)之間用“&”作為分隔符。

3.HTTP的響應(yīng)狀態(tài)碼:

狀態(tài)碼是服務(wù)器端返回客戶端服務(wù)器端處理請(qǐng)求的結(jié)果友题。狀態(tài)碼是由3位數(shù)字加原因短語(yǔ)組成嗤堰。3位數(shù)字中的第一位是用來(lái)指定狀態(tài)的類別。

狀態(tài)碼

1. 200:OK
 請(qǐng)求被正常的處理成功
2. 400:Bad Request
 400表示請(qǐng)求報(bào)文中存在語(yǔ)法錯(cuò)誤度宦。需要修改后再次發(fā)送踢匣。
3. 403:Forbidden
 表明請(qǐng)求訪問(wèn)的資源被拒絕了。沒(méi)有獲得服務(wù)器的訪問(wèn)權(quán)限戈抄,IP被禁止等离唬。
4. 404:Not Found
 請(qǐng)求的資源在服務(wù)器上找不到。
5. 500:Internal Server Error
 服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤划鸽,可能是服務(wù)端程序的Bug或者臨時(shí)故障男娄。
6. 503:Service Unavailable
 服務(wù)器暫時(shí)處于超負(fù)載或正在進(jìn)行停機(jī)維護(hù),現(xiàn)在無(wú)法處理請(qǐng)求漾稀。如果事先得知解除以上狀況需要的時(shí)間,最好寫(xiě)入Retry-After字段再返回給客戶端建瘫。
7. 504:Getaway Timeout
 網(wǎng)關(guān)超時(shí)崭捍,是代理服務(wù)器等待應(yīng)用服務(wù)器響應(yīng)時(shí)的超時(shí)。

更多狀態(tài)碼:http://tool.oschina.net/commons?type=5

4.HTTP請(qǐng)求方法:

請(qǐng)求方法是客戶端向服務(wù)器端請(qǐng)求數(shù)據(jù)的方法啰脚,就像下達(dá)命令一樣殷蛇。請(qǐng)求方法有很多種实夹,主要介紹下面3種:
1.GET:獲取資源
GET方法用來(lái)請(qǐng)求訪問(wèn)已被URI識(shí)別的資源。也就是指定了服務(wù)器處理請(qǐng)求之后響應(yīng)的內(nèi)容粒梦。
2.POST:傳輸實(shí)體主體
用于在服務(wù)器上創(chuàng)建新的資源亮航,或者執(zhí)行非冪等操作。在POST請(qǐng)求中匀们,服務(wù)器端通常會(huì)為新創(chuàng)建的資源分配一個(gè)URI缴淋,并將其包含在響應(yīng)中返回給客戶端。
3.PUT:傳輸文件
用于向服務(wù)器端傳送數(shù)據(jù)泄朴,以更新現(xiàn)有資源的狀態(tài)重抖。在PUT請(qǐng)求中,客戶端提供完整的資源表示祖灰,服務(wù)器端使用該表示來(lái)更新目標(biāo)資源钟沛。

5. POST、Get方法的區(qū)別:

  • post方法比get方法安全:Get將表單中數(shù)據(jù)添加到action所指向的URL后面局扶,并且兩者使用“?”連接恨统,而各個(gè)變量之間使用 “&”連接;Post是將表單中的數(shù)據(jù)放在form的數(shù)據(jù)體中三妈,按照變量和值相對(duì)應(yīng)的方式畜埋,傳遞到action所指向URL。
  • Get傳輸?shù)臄?shù)據(jù)量小沈跨,這主要是因?yàn)槭躑RL長(zhǎng)度限制由捎;而Post可以傳輸大量的數(shù)據(jù)。
  • Get是Form的默認(rèn)方法饿凛。

使用post上傳數(shù)據(jù):

    public static void postImage()throws IOException{
        URL url = new URL("http://127.0.0.1/test.php");
//http://127.0.0.1/test.php:這是我自己用Apache服務(wù)器搭建的后臺(tái)中的test.php文件
//        獲取connection對(duì)象
//        HttpURLConnection:自己設(shè)定請(qǐng)求的內(nèi)容 請(qǐng)求的方式 上傳的內(nèi)容(其他時(shí)候一般使用URLconnection)
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//        設(shè)置post請(qǐng)求方式
        connection.setRequestMethod("POST");
//        設(shè)置有輸出流狞玛,需要上傳
        connection.setDoOutput(true);
//        設(shè)置有輸入流,需要下載
        connection.setDoInput(true);

//        準(zhǔn)備上傳的數(shù)據(jù)
        String data = "user_name=yk&user_passward=123";
//        開(kāi)始上傳
        OutputStream os = connection.getOutputStream();
        os.write(data.getBytes());
//        寫(xiě)完了
        os.flush();
//        接收服務(wù)器端返回的數(shù)據(jù)
        InputStream is = connection.getInputStream();
        byte[] buf = new byte[1024];
        int len;
        while ((len = is.read(buf)) != -1){
            System.out.println(new String(buf,0,len));
        }
    }

打印結(jié)果:

用戶名:yk密碼:123

http://127.0.0.1/test.php:這是我自己用Apache服務(wù)器搭建的后臺(tái)中的test.php文件涧窒,代碼如下:

<?php
   $name = $_POST["user_name"];
   $passward = $_POST["user_passward"];
   echo "用戶名:".$name. "密碼:".$passward;
?>

使用get下載圖片:

    public static void getImage()throws IOException{

        URL url = new URL("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1928030112,980393754&fm=26&gp=0.jpg");
//        獲取服務(wù)器連接到的對(duì)象
        URLConnection connection = url.openConnection();
//        讀取下載的數(shù)據(jù)
        InputStream is = connection.getInputStream();
//        創(chuàng)建圖片保存的位置
        FileOutputStream fos = new FileOutputStream("C:\\JavaCode\\0805-1\\jave\\src\\main\\java\\day15\\URL\\1.jpg");
        byte[] buf = new byte[1024];
        int len;
        while ((len = is.read(buf)) != -1){
            fos.write(buf,0,len);
            System.out.println(len);
        }
        System.out.println("下好了");
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末心肪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纠吴,更是在濱河造成了極大的恐慌硬鞍,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戴已,死亡現(xiàn)場(chǎng)離奇詭異固该,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)糖儡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)伐坏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人握联,你說(shuō)我怎么就攤上這事桦沉∶柯鳎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵纯露,是天一觀的道長(zhǎng)剿骨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)埠褪,這世上最難降的妖魔是什么浓利? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮组橄,結(jié)果婚禮上荞膘,老公的妹妹穿的比我還像新娘。我一直安慰自己玉工,他們只是感情好羽资,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著遵班,像睡著了一般屠升。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狭郑,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天腹暖,我揣著相機(jī)與錄音,去河邊找鬼翰萨。 笑死脏答,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亩鬼。 我是一名探鬼主播殖告,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼雳锋!你這毒婦竟也來(lái)了黄绩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤玷过,失蹤者是張志新(化名)和其女友劉穎爽丹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體辛蚊,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粤蝎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袋马。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诽里。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖飞蛹,靈堂內(nèi)的尸體忽然破棺而出谤狡,到底是詐尸還是另有隱情,我是刑警寧澤卧檐,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布墓懂,位于F島的核電站,受9級(jí)特大地震影響霉囚,放射性物質(zhì)發(fā)生泄漏捕仔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一盈罐、第九天 我趴在偏房一處隱蔽的房頂上張望榜跌。 院中可真熱鬧,春花似錦盅粪、人聲如沸钓葫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)础浮。三九已至,卻和暖如春奠骄,著一層夾襖步出監(jiān)牢的瞬間豆同,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工含鳞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留影锈,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓蝉绷,卻偏偏與公主長(zhǎng)得像鸭廷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子潜必,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫(xiě),是用于從萬(wàn)維網(wǎng)(W...
    空口言_1d2e閱讀 393評(píng)論 0 0
  • (原話)談?wù)剬?duì)HTTP協(xié)議的理解:超文本傳輸協(xié)議磁滚,應(yīng)用于OSI網(wǎng)絡(luò)模型中的應(yīng)用層佛吓,是用于服務(wù)器傳輸超文本到本地瀏覽...
    24_yu閱讀 887評(píng)論 0 1
  • 去2345面試的時(shí)候鼻吮,說(shuō)到接口測(cè)試错妖,結(jié)果什么都是糊弄過(guò)去了,面試官?zèng)]有當(dāng)面揭穿睁搭,把我趕出去已經(jīng)覺(jué)得是萬(wàn)幸的晒他,回家就...
    留滬小廝閱讀 482評(píng)論 0 0
  • HTTP簡(jiǎn)介 HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫(xiě),是用...
    一個(gè)_快樂(lè)的人閱讀 240評(píng)論 0 0
  • HTTP簡(jiǎn)介 HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫(xiě),是用...
    lhg_serven閱讀 249評(píng)論 0 0