Servlet的一些概念

什么是Servlet?

答:简单来说,servlet是后台服务器的控制层的控制器,用来处理客户端发来的请求并且作出响应。

 

从客户端发送请求到服务器接收请求,之间发生了哪些事情?

答:首先客户端会把请求行(地址)、请求头、空行、和请求数据打包,发送到客户端。客户端在控制层(比如Servlet)接收到数据包后,开始解析数据,经过业务逻辑处理后,再打成数据包(状态行、消息报头、空行、响应正文)发送回客户端。

 

什么是请求头?请求头内有什么属性?

答:请求头是请求报文和响应报文中的一部分;

通用的请求头属性有

Date:表示消息产生的日期和时间

Connection:允许发送指定连接的选项,例如指定连接是连续的,或者指定“close”选项,通知服务器,在响应完成后,关闭连接

Cache-Control:用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制)

 

 

请求报文的请求头中属性有:

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机

User-Agent:发送请求的浏览器类型、操作系统等信息

Accept:客户端可识别的内容类型列表,用于指定客户端接收那些类型的信息

Accept-Encoding:客户端可识别的数据编码

Accept-Language:表示浏览器所支持的语言类型

Connection:允许客户端和服务器指定与请求/响应连接有关的选项,例如这是为Keep-Alive则表示保持连接。

Transfer-Encoding:告知接收端为了保证报文的可靠传输,对报文采用了什么编码方式。

 

响应报文的请求头中属性有:

Location:用于重定向接受者到一个新的位置,常用在更换域名的时候

Server:包含可服务器用来处理请求的系统信息,与User-Agent请求报头是相对应的

 

 

实体报头用来定于被传送资源的信息,既可以用于请求也可用于响应。请求和响应消息都可以传送一个实体,

常见的实体报头为:

Content-Type:发送给接收者的实体正文的媒体类型

Content-Lenght:实体正文的长度

Content-Language:描述资源所用的自然语言,没有设置则该选项则认为实体内容将提供给所有的语言阅读

Content-Encoding:实体报头被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。

Last-Modified:实体报头用于指示资源的最后修改日期和时间

Expires:实体报头给出响应过期的日期和时间

 

什么是HTTP协议?

答:超文本传输协议,基于TCP/IP协议,作用于客户端-服务器之间的通信。

 

HTTP的特点?

答:

1、HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

2、HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

3、HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

 

HTTP的请求方式有哪些?

答:get和post

 

GET和POST有什么区别?

答:

1、对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

2、而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

3、也就是说GET请求,产生了一个TCP包,而POST请求,产生了两个TCP包。

4、GET比POST不安全,用GET的请求参数暴露在URL中。

 

posted @ 2019-06-13 14:52  luojack  阅读(211)  评论(0编辑  收藏  举报