天天看點

javaee學習之路(三)HTTP協定學習

1.1 Tip2锛?HTTP??璁?绠?浠?

???HTTP??hypertext transfer protocol锛?瓒?????浼?杈???璁?锛???绠???锛?瀹???TCP/IP??璁???涓?涓?搴??ㄥ???璁?锛??ㄤ?瀹?涔?WEB娴?瑙??ㄤ?WEB???″?ㄤ??翠氦?㈡?版????杩?绋???

???HTTP??璁???瀛??JavaWEB寮??????虹?籌?涓?娣卞?ヤ?瑙?TTP??璁?锛?灏變??借?存???′?WEB寮???锛??存??娉?绠$????缁存?や?浜?澶?????WEB绔??廣??

???HTTP??璁???????锛?HTTP/1.0??HTTP/1.1

锛?1锛???瀹㈡?風??杩?涓?web???″?ㄤ???锛??ユ?寵?峰?web???″?ㄤ腑????涓?web璧?婧?锛????靛驚涓?瀹?????璁??煎?锛?HTTP??璁??ㄤ?瀹?涔?瀹㈡?風??涓?web???″?ㄩ??璁????煎?

锛?2锛???浣跨??elnet绋?搴??鎬?web???″???骞朵嬌??TTP??璁??峰???涓?椤甸???蹇???浜?瑙?TTP??璁???浣???

锛?3锛???瀹?瑁?IE娴?瑙??ㄧ????浠?ttpWatch锛??ョ??IE娴?瑙??ㄩ??杩?HTTP??璁??峰????涓?椤甸??

1.2 Tip3锛?HTTP1.0??HTTP1.1???哄??

???1????TTP1.0??璁?涓?锛?瀹㈡?風??涓?web???″?ㄥ緩绔?杩??ュ??锛????借?峰?涓?涓?web璧?婧???

???HTTP1.1??璁?锛???璁稿?㈡?風??涓?web???″?ㄥ緩绔?杩??ュ??锛??ㄤ?涓?杩??ヤ??峰??澶?涓?web璧?婧???

???2??浣跨??elnet涓句?璇存????

?????寮?tamcat???″????跺????OS?戒護琛????ワ?GET/aa/1.html HTTP/1.0 (宸茬???omcat???″?ㄧ??webapps??aa??褰?涓???寤轟?1.html)Host: (?跺????涓???杞???)

???3??涓?涓?濂藉???瀛???涓?娓?妤?????棰?锛?

???涓?涓?web椤甸??腑锛?浣跨??mg??绛懼??ㄤ?涓?骞??劇??锛?褰?瀹㈡?風??璁塊?????″?ㄤ腑??杩?涓?web椤甸?㈡?訛?瀹㈡?風???誨?變?璁塊????娆℃???″????沖?????″?ㄥ????浜???娆?TTP璇鋒???

???1.html涓?

Aaaaa
<img src=??1.jpg??>
<img src=??2.jpg??>
<img src=??3.jpg??>  
           

娴?瑙??ㄥ?????″?ㄥ????浜???娆¤?鋒?锛?

娉ㄦ??锛?web寮???椤甸?㈣?捐?℃?朵?瀹?瑕???灏?瀹㈡?鋒?虹??椤甸?㈣?鋒??幫?

??棰?锛?涓???唬????椤甸?㈠?㈡?鋒?烘??3娆¤?鋒???锛?

Aaaaaaaaaaaaaa
<script src=??1.js??>
<script src=??js??>
           

浼???锛?灏???????js??浠跺???頒?涓?js??浠朵腑锛?澶?涓?css??浠跺??骞舵??涓?涓?css??浠訛?

1.3 Tip4锛?HTTP璇鋒?

锛?1锛?瀹㈡?風??杩?涓????″?ㄥ??锛??????″?ㄨ?鋒???涓?web璧?婧?锛?绉頒?涓哄?㈡?風???????″?ㄥ????浜?涓?涓?HTTP璇鋒???涓?涓?瀹??寸??HTTP璇鋒?????濡?涓???瀹癸?

???涓?涓?璇鋒?琛????ュ共璇鋒?澶淬??浠ュ??瀹?浣???瀹癸??朵腑??涓?浜?娑???澶村??瀹?浣???瀹歸?芥????????锛?娑???澶村??瀹?浣???瀹逛??磋??ㄧ┖琛???寮???濡?涓???绀猴?

javaee學習之路(三)HTTP協定學習

1.4 Tip5锛?HTTP璇鋒???缁???????璇鋒?琛?

(1)??璇鋒?琛?涓???GET绉頒?涓鴻?鋒??瑰?锛?璇鋒??瑰???锛?

POST??GET??HEAD??OPTIONS??DELETE??TRACE??PUT

甯哥?ㄧ????锛?POST??GET

?ㄦ?峰???娌℃??璁劇疆锛?榛?璁ゆ???典?娴?瑙??ㄥ?????″?ㄥ???????芥??get璇鋒?锛?渚?濡??ㄦ?瑙??ㄧ?存?ヨ??闆??璁塊??锛??矽??炬?ヨ?塊??绛??芥??get锛??ㄦ?峰????蟲??璇鋒??瑰??逛負post锛???浠ラ??杩??存?矽〃??????浜ゆ?瑰?瀹??般??

<from action=??.html?? method=??post??>
</from>
           

?朵??瑰??芥??get

(2)??涓?绠?OST??GET锛??界?ㄤ??????″?ㄨ?鋒???涓?WEB璧?婧?锛?杩?涓ょ??瑰????哄??涓昏?琛ㄧ?闆?ㄦ?版??浼???涓?锛?瀹㈡?風????杩?杩?涓ょ??瑰??藉??浠ュ甫涓?浜??版??缁????″???

A??濡?璇鋒??瑰?涓?ET?瑰?锛?????浠ュ?ㄨ?鋒???URL?闆????浠???褰㈠?甯??浜ょ????″?ㄧ???版??锛?澶?涓??版??涔??翠互&杩?琛?????锛?渚?濡?锛?

GET?瑰????圭?癸???RL?闆??????甯??????版???????剁??锛??舵?版??瀹歸??涓??借?杩?1K??

渚?濡?锛??????″?ㄤ?浼?涓?涓?澶уご?э?灏變??界??et??

B??濡?璇鋒??瑰?涓?OST?瑰?锛?????浠ュ?ㄨ?鋒???瀹?浣???瀹逛腑?????″?ㄥ?????版??锛?渚?濡?锛?

POST /servlet/ParamsServlet HTTP/
    Host:
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 
    name=abc&password=xyz
           

Post?瑰????圭?癸?浼??????版?????????躲??

渚?瀛?锛??圭??

?瑰?昏??炬?ョ?????跺?????″?ㄥ????浜??版??username

(3)锛?HTTP璇鋒???缁???????娑???澶?

?ㄤ?HTTP璇鋒?涓???甯哥?ㄥご

Accept: text/html,image/* (??璇????″?ㄥ?㈡?鋒?烘???????版??绫誨??锛?杩???琛ㄧず????html??浠諱????劇???煎?)

Accept-Charset: ISO-8859-1(?ㄤ?楂??????″???瀹㈡?鋒?洪???ㄧ??缂???)

Accept-Encoding: gzip,compress(?ㄤ???璇????″???瀹㈡?鋒?洪???ㄧ???版????缂╂?煎?)

Accept-Language: en-us,zh-cn 锛?瀹㈡?鋒?虹??璇?瑷???澧?锛?

Host: www.it315.org:80(瀹㈡?鋒?哄??璇????″?ㄦ?寵?璁塊????涓繪?哄??)

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(瀹㈡?鋒?洪??杩?杩?涓?澶村??璇????″???璧?婧???缂?瀛??堕??

Referer: http://www.it315.org/index.jsp(瀹㈡?鋒?洪??杩?杩?涓?澶村??璇????″???瀹???浠???涓?璧?婧??ヨ?塊?????″?ㄧ??锛??茬???撅?)

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) (瀹㈡?鋒?洪??杩?杩?涓?澶村??璇????″???瀹㈡?鋒?虹??杞?浠剁??澧?)

Cookie锛?(瀹㈡?鋒?洪??杩?杩?涓?澶村??璇????″?ㄥ??浠ュ?????″?ㄥ甫?版??)

Connection: close/Keep-Alive

Date: Tue, 11 Jul 2000 18:23:51 GMT

(4)??涓?涓?HTTP??搴?浠h〃???″?ㄥ??瀹㈡?風?????????版??锛?瀹?????锛?

javaee學習之路(三)HTTP協定學習

A???舵??琛?

?煎?锛? HTTP?????楓???舵????????????杩?

涓句?锛?HTTP/1.1 200 OK

?舵?????ㄤ?琛ㄧず???″?ㄥ?矽?鋒???澶???缁???锛?瀹???涓?涓?涓?浣?????杩??舵?般????搴??舵??????涓?绫夥?濡?涓???绀猴?

javaee學習之路(三)HTTP協定學習

1.5 Tip9锛?HTTP??搴?缁???????甯哥?ㄥ??搴?澶?

HTTP璇鋒?涓???甯哥?ㄥ??搴?澶?

??Location: http://www.it315.org/index.jsp(????302?舵??浣跨????ㄤ???璇?瀹㈡?鋒?捐?锛?璇鋒???瀹???锛?)

渚?锛?//??ocation??302瀹??拌?鋒???瀹???锛??誨?绛?绛?锛?

Public void test1(HttpServletResponse response){
   Response.setStatus();
   Response.setHeader(??location??,??/fandong/html??);
}
           

??erver:apache tomcat锛????″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄦ???″?ㄧ??绫誨??锛?

??ontent-Encoding: gzip ()(???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄦ?版??????缂╂?煎?)

娉ㄦ??锛???缂╄?芥??楂?缃?绔????ц?斤?骞跺??浠ヨ????缃?绔???????

Java涓?????缂╂?锛?GZIPOutputStream绫?

渚?锛?瀹??版?版??????缂╄??恒??

????.
String data=??aaaaaa??;
System.out.println(????濮??版??澶у?锛???+data.getBytes().length);
ByteArrayOutputStream bout=new ByteArrayOutputStream();
GZIPOutputStream gout=new GZIPOutputStream(bout);//濡????版????寰?灏?锛?娌℃??濉?婊$??插?猴?涓?浼????ュ?灞?娴?锛???浠ヨ???gout.close()
gout.write(data.getBytes());
gout.close();
byte gzip[]=bout.toByteArray();//寰??闆??缂╁?????版??
system.out.println(????缂╁????澶у?:??+gzip.length);
response.setHeader(??Content-Encoding??,??gzip??);
response.setHeader(??Content-Length??,gzip.length+????);
response.getOutputStream.write(gzip);
????
           

??ontent-Length: 80 (???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄦ?版???????版?????垮害)

??ontent-Language: zh-cn (???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄦ?版???????版????璇?瑷???澧?)

??ontent-Type: text/html; charset=GB2312 (???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄦ?版???????版????绫誨??html??img绛?绛?)

??棰?锛?濡?浣??ユ?句????煎???浠剁被??瀵瑰???Content=Type?

??omcat涓???web.xml?ユ?撅???E??寮?锛???涓?ctrl+F锛??ㄦ??f3?ユ?撅?

??ast-Modified: Tue, 11 Jul 2000 18:23:51 GMT (???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄥ???璧?婧???缂?瀛??堕??

??efresh: 1;url=http://www.it315.org(???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄩ??澶??挎?堕?村?鋒?頒?娆?

渚?濡?锛?

?? response.setHeader(??refresh??,????);
      String data=??aaaaaaaa??;
      Response.getOutputStream().write(data.getBytes());//姣???3绉??鋒?頒?娆¤?婧?
     搴??ㄤ???澶╁?ょ??绛?绋?搴???瀹??幫?
     ??response.setHeader(??refresh??,????;url=??http://www.baidu.com??);
      String data=??aaaaaaaa??;
      Response.getOutputStream().write(data.getBytes());//??3绉??鋒?闆?扮?懼害
           

??ontent-Disposition: attachment; filename=aaa.zip(???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄤ互涓?杞芥?瑰???寮??版??)

??ransfer-Encoding: chunked(???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄦ?版????浼????煎?)

Set-Cookie:SS=Q0=5Lb_nQ; path=/search

ETag: (缂?瀛??稿?崇??澶?

Expires: -1(???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄦ????????璧?婧?缂?瀛?澶??挎?堕?達?-1??0锛?????涓?缂?瀛?)

Cache-Control: no-cache (???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄤ?瑕?缂?瀛???????璧?婧?)

Pragma: no-cache(???″?ㄩ??杩?杩?涓?澶達???璇?娴?瑙??ㄤ?瑕?缂?瀛???????璧?婧?)

Connection: close/Keep-Alive

Date: Tue, 11 Jul 2000 18:23:51 GMT

1.6 Tip10锛?HTTP璇鋒???缁????????ㄤ俊??澶?

???ㄤ俊??澶存???㈣?界?ㄤ?璇鋒?锛????界?ㄤ???搴???涓?浜?娑???澶淬??

Cache-Control: no-cache

Pragma: no-cache

Connection: close/Keep-Alive

Date: Tue, 11 Jul 2000 18:23:51 GMT

1.7 Tip11锛?浣?涓?

璇峰??涓?绡??充?HTTP??璁???绗?璁幫?瑕?姹?锛?

??杩版?妤?HTTP璇鋒?澶淬????搴?澶寸???煎?

璇鋒?澶村????搴?澶翠腑??涓?澶村??娈電????涔?

濡???娴?瑙??ㄤ???缁?WEB???″?ㄧ?????闆??瀹矽?杩?1K锛?搴?璇ヤ嬌?ㄩ?g??瑰?????璇鋒?娑???锛?

璇鋒??杩?00??302??304??404??500绛???搴??舵??????琛ㄧず????涔???

璇峰??涓句?绉?绂?姝㈡?瑙??ㄧ?瀛???澶村??娈碉?骞跺???虹?稿???璁劇疆?箋??

javaee學習之路(三)HTTP協定學習
javaee學習之路(三)HTTP協定學習
javaee學習之路(三)HTTP協定學習
javaee學習之路(三)HTTP協定學習
javaee學習之路(三)HTTP協定學習
javaee學習之路(三)HTTP協定學習
javaee學習之路(三)HTTP協定學習

繼續閱讀