HTTP协议

一、什么是HTTP协议?

客户端与服务器之间进行通信时,发送的数据,需要遵守的规则,叫HTTP协议。

二、GET请求和POST请求:

请求又分为GET请求和POST请求。

1.GET请求:

    1.1 请求行:

          (1)请求的方式                 GET

          (2)请求的资源路径[+?+请求的参数]

          (3)请求的协议的版本号           HTTP/1.1

    1.2 请求头:

            key:value  组成,不同的键值对,表示不同的含义。

2.POST请求

     2.1 请求行

          (1)请求的方式                 POST

          (2)请求的资源路径[+?+请求的参数]

          (3)请求的协议的版本号           HTTP/1.1

      2.2 请求头

           key-value 键值对。

           空行

      2.3 请求体   -->发送给服务器的数据

三、常用请求头的说明

  • Accept: 表示客户端可以接受的数据类型。
  • Accept-Language:表示客户端可以接收的语言类型。
  • User-Agent:表示客户端浏览器的信息。
  • Host:表示请求时的服务器的ip和端口号。

四、哪些时GET请求,哪些是POST请求?

1.GET请求有哪些?

  • form标签,method=get
  • a标签
  • link标签引入css
  • Script标签引入js文件
  • image标签引入图片
  • iframe引入html页面
  • 浏览器地址栏中输入地址后敲回车                        

2.POST请求有哪些?

  • form标签,method=post

五、响应的HTTP协议格式

1.响应行

  1. 响应的协议和版本号
  2. 响应状态码
  3. 响应状态描述符

2.响应头

  • key-value  不同的响应头,有其不同的含义

          空行

3.响应体  : 就是回传给客户端的数据

六、常见的响应码说明

  • 200      表示请求成功
  • 302      表示请求重定向
  • 404      表示请求服务器已经收到了,但是你要的数不存在了(请求地址错误)
  • 500      表示服务器已经收到请求,但是服务器内部错误

七、HttpServletRequest类

 作用

       每次只要有请求进入Tomcat服务器,Tomcat服务器就会把请求过来的HTTP协议信息解析好封装到Request对象中。然后传递到service方法中(doGet()和doPost())中给我们使用。我们可以通过HttpServletRequest对象,获取到所有请求的信息。

HttpServletRequest类的常用方法:

  • getRequestURI()           获取请求的资源路径、
  • getRequestURL()          获取请求的统一资源定位符(绝对路径)
  • getRemoteHost()           获取客户端的ip地址
  • getHeader()                    获取请求头
  • getParameter()               获取请求的参数
  • getParameterValues()    获取请求的参数(多个值的时候使用)
  • getMethod()                    获取请求的方式(GET或者POST)          
  • setAttribute(key,value)   设置域数据
  • getAttribute(key)             获取域数据
  • getRequestDispatcher()  获取请求的转发对象

八、请求转发:

         是指服务器收到请求后,从一个资源转到服务器另一个资源的操作叫转发。

特点:

  1. 浏览器的地址栏没有变化
  2. 他们是一次请求
  3. 他们共享Request域中的数据
  4. 可以转发到WEB-INF目录下
  5. 不可以访问当前项目以外的资源路径

九、HttpServletResponse类:

作用:

HttpServletResponse类和HttpServletRequest类一样。每次请求进来,Tomcat服务器都会创建一个Response对象传递给Servlet程序去使用。HttpServletRequest表示请求过来的信息,HttpServletResponse表示所有响应的信息,我们可以通过HttpServletResponse对象来设置返回给客户端的数据。 

两个输出流:

  • 字节流        getOutputStream()             常用于下载(传递二进制数据)
  • 字符流        getWriter()                          常用于回传字符串(比较常用)

      这两个流之能用其中的一种。

十、请求重定向

      请求重定向,是指客户端给服务器发请求,然后服务器告诉客户端一些地址(因为之前的地址可能被废弃),让客户端去新地址访问,叫做请求重定向。

特点:

  • 浏览器地址栏会有变化
  • 两次请求
  • 不共享Request域中的数据
  •  不能访问WEB-INF下的资源
  • 可以访问工程外的资源
//实现方法一:
response.setStatus(302);
response.setHeader("Location","http://ip:port/");


//实现方法二:(推荐使用)
response.sendRedirect("http://ip:port/");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值