如果面试官让你谈谈你对http的认识,你会怎么回答?
2013-03-18 23:21
676 查看
记得有一次面试的时候,面试官就让我谈谈对http的认识,因为简历当中我是这么写的“基本掌握http”,其实那时候的我对http的认识可以说为0,所以当时我就很不好意思的回答说不大清楚,时至今日我才发现我对http的认识只是冰山一角,下面就谈谈我个人对http肤浅的认识:
1.首先http(超文本传输协议)其处于OSI7层模型中的应用层,OSI7层模型分别为应用层-》表示层-》会话层-》传输层-》网络层-》数据链路层-》物理层,对于这7层模型,我们应该大致的了解每一层是干嘛的,这个是必须的,在此就不一一说明。
2.http事物是指从客户端(IE)向服务器端发送http请求,再由服务器将响应的内容返发回给客户端的一个过程。
3.http链接是通过tcp链接,首先客户端会打开一条连向服务器端的链接,然后开始发送http请求,接着由服务器返发响应的内容,当客户端接受后就断开此链接,这样一次客户端与服务器端的通信就结束了。
4.http报文:由客户端向服务器端发送的http请求和从服务器端发送到客户端响应的内容都是http报文,其格式为:起始行、头部(HEAD)、主体(BODY)
对于报文的理解,在这里向大家推荐一个工具叫:fiddler。通过它可以详细的看到http报文的组成结构和具体的内容。
5.http中的方法分为5种:增(PUT)、删(DELETE)、改(POST)、查(GET)、HEAD
6.MIME(多用途网络邮箱扩展)类型:对象类型/特定子类型,如:image/png,通过fiddler可在http请求的起始行中看到。
7.发送http请求的目的是为了请求某一资源,然后由服务器返回客户端需要的资源,客户端(IE)通过解析将其显示出来,这里的资源是如何标识的呢?其实是通过URI(Uniform Resource Identifier)统一资源标识符,其主要有2中形式:URL(统一资源定位符)和URN(统一资源名称),目前最常用的是URL。那如何通过URL我们就可以找到某一资源了呢?
举例说明如下:
当我们在客户端输入如下地址:
http://www.cnblogs.com/***/****.html
客户端首先会解析www.cnblogs.com所对应的IP地址为42.121.252.58(即DNS域名服务),而http默认的端口号为80,即向IP地址为42.121.252.58的服务器端口号为80请求***/****.html这样一个资源。
8.在客户端与服务器端还存在着代理,这个代理类似于一个中间人的作用,在2者之间传递http报文,使用代理的好处有很多就不详细介绍了。
9.除此之外还有就是在代理服务器上使用缓存,通过使用缓存可以大大提高访问速度,缓存是将服务器发送给客户端的报文进行了一次COPY而保留在了代理服务器上,当客户端再次请求时,代理就会判断文件的新鲜度来判断是否返回给客户端当前的缓存文件,否则从服务器端下载返回给客户端。
那么代理是如何判断文件的新鲜度呢?主要是通过缓存文件最后修改的时间与服务器端文件最后修改时间是否一致,但这种还存在瑕疵,所以有时候还得通过E-TAG来判断,可以通过fiddler去仔细观察。
以后努力做到每周写一次博客,以此纪念我逝去的青春。
1.首先http(超文本传输协议)其处于OSI7层模型中的应用层,OSI7层模型分别为应用层-》表示层-》会话层-》传输层-》网络层-》数据链路层-》物理层,对于这7层模型,我们应该大致的了解每一层是干嘛的,这个是必须的,在此就不一一说明。
2.http事物是指从客户端(IE)向服务器端发送http请求,再由服务器将响应的内容返发回给客户端的一个过程。
3.http链接是通过tcp链接,首先客户端会打开一条连向服务器端的链接,然后开始发送http请求,接着由服务器返发响应的内容,当客户端接受后就断开此链接,这样一次客户端与服务器端的通信就结束了。
4.http报文:由客户端向服务器端发送的http请求和从服务器端发送到客户端响应的内容都是http报文,其格式为:起始行、头部(HEAD)、主体(BODY)
对于报文的理解,在这里向大家推荐一个工具叫:fiddler。通过它可以详细的看到http报文的组成结构和具体的内容。
5.http中的方法分为5种:增(PUT)、删(DELETE)、改(POST)、查(GET)、HEAD
6.MIME(多用途网络邮箱扩展)类型:对象类型/特定子类型,如:image/png,通过fiddler可在http请求的起始行中看到。
7.发送http请求的目的是为了请求某一资源,然后由服务器返回客户端需要的资源,客户端(IE)通过解析将其显示出来,这里的资源是如何标识的呢?其实是通过URI(Uniform Resource Identifier)统一资源标识符,其主要有2中形式:URL(统一资源定位符)和URN(统一资源名称),目前最常用的是URL。那如何通过URL我们就可以找到某一资源了呢?
举例说明如下:
当我们在客户端输入如下地址:
http://www.cnblogs.com/***/****.html
客户端首先会解析www.cnblogs.com所对应的IP地址为42.121.252.58(即DNS域名服务),而http默认的端口号为80,即向IP地址为42.121.252.58的服务器端口号为80请求***/****.html这样一个资源。
8.在客户端与服务器端还存在着代理,这个代理类似于一个中间人的作用,在2者之间传递http报文,使用代理的好处有很多就不详细介绍了。
9.除此之外还有就是在代理服务器上使用缓存,通过使用缓存可以大大提高访问速度,缓存是将服务器发送给客户端的报文进行了一次COPY而保留在了代理服务器上,当客户端再次请求时,代理就会判断文件的新鲜度来判断是否返回给客户端当前的缓存文件,否则从服务器端下载返回给客户端。
那么代理是如何判断文件的新鲜度呢?主要是通过缓存文件最后修改的时间与服务器端文件最后修改时间是否一致,但这种还存在瑕疵,所以有时候还得通过E-TAG来判断,可以通过fiddler去仔细观察。
以后努力做到每周写一次博客,以此纪念我逝去的青春。
相关文章推荐
- 面试时,如果面试官问你怎样看待加班,应该怎么回答?
- 面试官提问如果回答不上来怎么办
- 创业如何回答:如果腾讯做了你怎么办?
- 请问 Android http上传文件 可以断点续传么 如果可以怎么实现 有第三方的插件么 谢谢
- 面试官问现在工资是多少该怎么回答?
- 水区1、问:如何安慰一个胖子? 答:你的人生已经很圆满了。 2、问:如果有不认识的人加你Q,让我来告诉你怎么拒绝他。 神回复:照照镜子摸摸兜,条件够了再加Q。 3、问:你的妈妈是全天下最美的妈妈,
- 请问 Android http上传文件 可以断点续传么 如果可以怎么实现 有第三方的插件么 谢谢
- 今天早上失败的面试经历。如果是你,这些问题你会怎么回答?-.-...
- 当面试官问你为什么换工作的时候,你会怎么回答?
- 怎么回答面试官:你对Spring的理解?
- 如果面试官问我这些问题,我会这么回答!
- 面试官问现在工资是多少该怎么回答?
- 当面试官问你用例设计时你会用什么方法,你怎么回答
- 今天早上失败的面试经历。如果是你,这些问题你会怎么回答?-.-...
- 今天早上失败的面试经历。如果是你,这些问题你会怎么回答?-.-...
- 面试官问现在工资是多少,该怎么回答?
- 谈谈我对Ext的认识,元芳,你怎么看
- 假如面试官问我打算在该公司做多久?愿意签几年合同?为什么?我应该怎么回答好呢?急急急,谢谢回答
- 谈谈 微软 鲍尔默退休,他错在哪里?该怎么做!
- 面试中怎么回答HashMap的工作原理