【我的javaEE学习】HTTP协议学习

1、HTTP协议概述

HTTP是什么?超文本传输协议。

 描述客户端和服务器端的数据标准,该协议由W3C维护和管理。

   版本:

          HTTP1.0:每次发出请求都需要建立网络连接

          HTTP1.1:(主流)在一次网络连接上发出多次请求和得到多次响应。多了一些头。

 

明确:

    浏览器遇到以下标记时,会自动发出请求

 

2、HTTP协议的组成

2.1请求部分

 

2.2响应部分

 

3、请求部分详解

3.1请求行:

      GET /app1/1.html HTTP/1.1

      GET:请求方式。

              常用的请求方式:GET(默认的)、POST、HEAD、OPTIONS、PUT、DELETE、TRACE等

                     GET:默认的

                                http://localhost:8080/app1/1.html?username=abc&password=123

                提交的数据显示出来了,相对不安全,协议的第一行有长度限制,<1kb.

                     (有请求数据时推荐)POST:可以通过<form method=post/>

                                username=abc&password=123

                                提交的数据在请求正文中的,相对安全,长度没有限制。

 

              /app1/1.html :请求的资源地址。(URI)

                      URL:协议+主机:端口+资源地址

                            http://localhost:8080/app1/1.html

 

             HTTP/1.1:客户端浏览器使用的协议的版本。

 

 

3.2请求消息头:(做好笔记,记住常用的头)

      作用:向服务器端传递附加信息(暗号指令)

               ● Accept:告知服务器,客户端可以接受的数据类型(MIME类型)

                              文件系统:通过文件的扩展名区分不同的文件的。txt jpeg

                              MIME类型:大类型/小类型。  txt--->text/plain   html---->text/html js---->text/javascript (具体对应关系:Tomcat\conf\web.xml)

               ● Accept-Encoding:告知服务器,客户端可以接受的压缩编码。比如gzip

               ● Accept-Language:告知服务器,客户端支持的语言。

               ● Referer:告知服务器,从哪个页面过来的。

            作用:统计广告的投放效果;防止盗链。

 

 

               ● Content-Type:告知服务器,请求正文的MIME类型

                      默认类型:application/x-www-form-urlencoded(表单enctype属性的默认取值)

                      具体体现:username=abc&password=123

                      其他类型:multipart/form-data(文件上传时用的);application/json(序列化后的Json字符串)等等

               ● Content-Disposition:是 MIME 协议的扩展,MIME协议指示MIME用户代理如何显示附加的文件,会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名

                       具体体现:Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");

                       如:Response.AppendHeader("Content-Disposition","attachment;filename=”+new String(“用户列表.xls”.getBytes(),”ISO-8859-1”));

               ● If-Modified-Since:告知服务器,当前访问的资源,缓存中的文件的最后修改时间。

               ● User-Agent:告知服务器,浏览器的类型

               ● Content-Length:请求正文的数据长度

               ● Cookie:会话管理有关

 

3.3请求正文:

   数据能提交到服务器,表单中的输入域必须有name属性值

      POST请求是才有正文

          username=abc&password=123

 

4、响应部分详解

4.1响应行:

               HTTP/1.1 200 OK

               HTTP/1.1 :说明服务器端用的协议版本

               200 :响应状态码

 

               状态码简单说明

                              1XX 2XX 3XX 4XX 5XX

                              2XX:处理完毕

                              4XX:请求有误

                              5XX:服务器有误

                              记住常用的响应码:

                              200:一切正常

                              302/307:请求重定向

                              304:服务器上的资源没有发生改变

                              404:访问的地址不存在

                              500:服务器端错误

                              OK:响应吗描述

 

4.2响应消息头:

       作用:服务器端向客户端传递的附加信息(暗号指令)

               ● Location:告知客户端,你去访问的地址。

               和302/307实现请求重定向

               ● Content-Encoding:告知客户端,响应正文使用的压缩编码(gzip)

               ● Content-Length:告知客户端,响应正文的长度

               ● Content-Type:告知客户端,响应文正的MIME类型。默认text/html

               ● Refresh:告知客户端,定时刷新

         ● Content-Disposition:告知客户端,用下载的方式打开

                   即Content-Disposition=attachment;filename=23.jpg

               ● Set-Cookie:会话有关

 

--------------------三头一块用,用于告知浏览器,不要缓存-----------

               ● Expires: -1 控制时间的

               ● Cache-Control: no-cache (1.1)  

               ● Pragma: no-cache   (1.0)

------------------------------------------------------------------------------------

  

4.3响应正文:

      浏览器解析的正文内容,右键查看源码一样的。

 

 

问题:

1、经常看到url中很长的一串请求参数get,为什么不采用post方式?
答:
⑴用GET实现起来更简单,GET的请求更容易解析,跳转等
⑵浏览器地址栏打开的默认就是GET,所以链接用GET很方便。
⑶POST的提交需要表单或js提交,麻烦。
⑷GET可以使用缓存,有利于SEO
⑸GET提交的数据大小,不同浏览器的限制不同,一般在2k-8K之间,POST提交数据比较大,大小靠服务器的设定值限制,而且某些数据只能用 POST 方法「携带」,比如 file。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值