天天看点

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协议学习

继续阅读