- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA-WEB面经
Http协议
网络七层协议是什么?
网络七层协议,也就是OSI模型,从上到下分为高层()和低层(3.2.1):
7、应用层(HTTP)
6、表示层(加密、ASCII)
5、会话层(SQL)
4、传输层(TCP、UDP)
3、网络层(IP、IPX)
2、数据链路层
1、物理层
什么是HTTP协议?
HTTP协议是一种超文本传输协议,它是基于TCP/IP协议的应用层协议,遵循三次握手和四次挥手通信规则。HTTP能够在不断的发展过程中存活下来,主要取决于他的头格式的设计,实际开发中是可以基于自己的特性问题,对请求头/响应头做对应的扩充的,如果这种扩充还是共性问题,HTTP协议还会将其收录到标准的头中,从而让HTTP协议能够不断适应。
HTTP协议的特点有哪些?
默认端口为80;
一次请求对应一次响应;
无状态:多次请求和响应间的数据是不共享的,可以通过会话技术解决该问题。
HTTP有哪些版本?
1.0——历史(短链接:每次请求需要重新握手建立连接)。
1.1——保持连接一定时间不断开,但是每个通道都需要一个线程守护,大大影响服务器的并发能力(目前是主流版本BIO)。
2.0——多路复用,一个线程可以同时守护多个连接通道,大大增加服务器的并发能力。
(底层基于NIO的选择器技术实现,未普及)
什么是多路复用?
在HTTP的多路复用是基于NIO实现的,一个线程可以同时守护多个连接通道,只有发起的是IO请求,线程才会去处理,处理的顺序按照IO请求发起的顺序执行。
BIO、NIO、AIO有什么区别?
BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
NIO:Non IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。
小结:
BIO是一个连接一个线程。(只要连接,就分配一个线程)
NIO是一个请求一个线程。(只有IO请求,才分配一个线程)
AIO是一个有效请求一个线程。(AIO是异步的NIO)
HTTP协议的请求有哪几部分?
四个部分:
请求行:包括请求方式、提交路径(提交参数)、HTTP/版本号。
请求头:特点是可以一直扩展。
请求空行:就是普通的换行区分请求头和请求体。
请求体:将资源文件发送给客户端浏览器进行解析。get有请求体,只没有请求数据。
HTTP有哪些请求参数?
Host:一般显示的是域名。
Accept:客户端浏览器所支持的MIME类型。
Accept-Encoding:支持的编码格式。
Referer:请求来源。
Connection:连接的状态,一般是Keep-Alive保持连接。
Cookie:会话信息。
User-Agent:运的浏览器类型的详细信息。
什么是MIME类型?
MIME是HTTP协议中用来定义文档性质及格式的标准。
GET请求和POST请求方式有什么区别吗?
请求参数的携带方式同:get请求放在请求行中,post放在请求体中。
get请求,请求参数是在请求行中,数据的大小受到浏览器限制;post请求则是放在请求体中,数据无大小限制。
get请求的安全性低,post请求相对安全性高(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中),且post可以进行加密操作。
get的效率比post更高,因为post请求在真正接受数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据,所以get一定是先于post执行的。
但是:
本质上来说,GET请求和POST请求没什么区别,只是在浏览器端对它们的使用不同而已,它们底层都是基于TCP(三次握手、四次挥手)的Socket进行数据传输的。
HTTP协议的响应有哪几个部分?
四个部分:
响应行:包括请求方式、状态码、状态描述等
常行状态码:
200(正常)、304(使用缓存)、404(资源找不到)、500(服务器错误)
响应头:
常见响应头有:
location ——指定重定向的路径
content-type ——告知浏览器当次响应的数据类型及码表
content-disposition ——告知浏览器以什么方式打开
if-modified ——结合请求头的if-modified-since一起使用,做缓存
etag ——结合请求头的if-none-match一起使用,做缓存的
set-cookie ——结合请求头cookie一起使用的,做会话的
响应空行:就是普通换行。
响应体:将资源文件发送给客户端浏览器解析,响应到页面的
文档评论(0)