HTTP和Servlet学习小结

一、HTTP

1.1HTTP协议简介:

  1. HTTP 超文本传输协议 (HTTP-Hypertext transfer protocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
  2. 客户端与服务端通信时传输的内容我们称之为报文
  3. HTTP就是一个通信规则,这个规则规定了客户端发送给服务器的报文格式,也规定了服务器发送给客户端的报文格式。实际我们要学习的就是这两种报文。客户端发送给服务器的称为”请求报文“,服务器发送给客户端的称为”响应报文“。

1.2HTTP协议的会话方式

    浏览器与服务器之间的通信过程经历的四个步骤

                                                            

  1. 浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问,浏览器与WEB服务器都要建立一次单独的连接。
  2. 浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应对。

 

1.3HTTP0和HTTP1的区别

       在HTTP1.0版本中,浏览器请求一个带有图片的网页,会由于下载图片而与服务器之间开启一个新的连接;但在HTTP1.1版本中,允许浏览器在拿到当前请求对应的全部资源后再断开连接,提高了效率。

       HTTP0称为短连接,HTTP1称为长连接。

 

二、报文

       2.1请求报文

 

       2.1.1

            请求首行(请求行);

            请求头信息(请求头);

            空行;

            请求体

 

       2.1.2 GET请求

             

GET /Hello/index.jsp HTTP/1.1

Accept: */*

Accept-Language: zh-CN

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

Accept-Encoding: gzip, deflate

Host: localhost:8080

Connection: Keep-Alive

Cookie: JSESSIONID=C55836CDA892D9124C03CF8FE8311B15

 

  1. GET /Hello/index.jsp HTTP/1.1:GET请求,请求服务器路径为Hello/index.jsp,协议为1.1;
  2. Host:localhost:请求的主机名为localhost;
  3. User-Agent: Mozilla/4.0 (compatible; MSIE 8.0…:与浏览器和OS相关的信息。有些网站会显示用户的系统版本和浏览器版本信息,这都是通过获取User-Agent头信息而来的;
  4. Accept: */*:告诉服务器,当前客户端可以接收的文档类型, */*,就表示什么都可以接收;
  5. Accept-Language: zh-CN:当前客户端支持的语言,可以在浏览器的工具à选项中找到语言相关信息;
  6. Accept-Encoding: gzip, deflate:支持的压缩格式。数据在网络上传递时,可能服务器会把数据压缩后再发送;
  7. Connection: keep-alive:客户端支持的链接方式,保持一段时间链接,默认为3000ms;
  8. Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98:因为不是第一次访问这个地址,所以会在请求中把上一次服务器响应中发送过来的Cookie在请求中一并发送过去。

     2.1.3 POST请求

 

POST /Hello/target.html HTTP/1.1

Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*

Referer: http://localhost:8080/Hello/

Accept-Language: zh-CN

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

Host: localhost:8080

Content-Length: 14

Connection: Keep-Alive

Cache-Control: no-cache

Cookie: JSESSIONID=774DA38C1B78AE288610D77621590345

 

username=admin
  1. Referer: http://ocalhost:8080/hello/index.jsp:请求来自哪个页面,例如你在百度上点击链接到了这里,那么Referer:http://www.baidu.com;如果你是在浏览器的地址栏中直接输入的地址,那么就没有Referer这个请求头了;
  2. Content-Type: application/x-www-form-urlencoded:表单的数据类型,说明会使用url格式编码数据;url编码的数据都是以“%”为前缀,后面跟随两位的16进制,例如“传智”这两个字使用UTF-8的url编码用为“%E4%BC%A0%E6%99%BA”;
  3. Content-Length:13:请求体的长度,这里表示13个字节。
  4. keyword=hello:请求体内容!hello是在表单中输入的数据,keyword是表单字段的名字

      2.1.4 HTTP响应码

  1. 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
  2. 404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;
  3. 500:请求资源找到了,但服务器内部出现了错误;
  4. 302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址;

三、Servlet

3.2 Servlet的生命周期

 

构造器

 执行时机:第一次发送请求时执行。

执行次数:在整个生命周期中执行一次。

 

 init()

执行时机:第一次发送请求时执行。

执行次数:在整个生命周期中执行一次。

 

service()

执行时机:每次发送请求时执行。

执行次数:在整个生命周期中执行n(n>0)次。

 

destroy()

 执行时机:关闭服务器时执行。

执行次数:在整个生命周期中执行一次。

 

3.3 ServletConfig与ServletContext区别

 ServletConfig:代表Servlet配置信息

作用

1. 获取初始化参数:getInitParameter(),当前Servlet可以使用

 2. 获取ServletContext对象

3. 获取当前Servlet名称。

 

ServletContext:代表Servlet上下文

作用

1. 获取初始化参数:getInitParameter(),所有servlet都可以使用

2. 获取真实路径:getRealPath()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值