不惧面试:HTTP协议(1) - 基础扫盲
先交代下背景,之前在一家公司面试.NET开发,去了先是做一份笔试题,有一半是关于HTTP协议的,技术总监直接面试,也是问一大堆HTTP协议的知识点,可能跟该公司的产品有关,该公司属于互联网公司,所以对HTTP协议比较看重吧。本人主要是做c/s开发,HTTP协议也只是略懂一二,所以面试的效果不太好,给的offer工资不高。面试回来后好好补了下HTTP协议。写这个系列的原因是总结自己遇到的面试题以及可能遇到的题目,更重要的是,今年定的目标是掌握网络这一块的知识点,先是搞懂HTTP协议,然后是TCP/IP协议,再就是WCF如何运用这些协议更好地工作。

不惧面试:HTTP协议(2) - 网关、隧道和中继
不惧面试:HTTP协议(3) - Cookie
不惧面试:HTTP协议(4) - 安全HTTP
不惧面试:HTTP协议(5) - 基本认证机制
持续更新中...
面试常见题:
1.什么是HTTP协议?★☆
2.Web客户端是什么?☆
3.Web服务端是什么?☆
4.什么是资源?★
5.MIME类型是什么?★☆
6.什么是URI?★
7.什么是URL?★
8.什么是URN?★
9.常见的HTTP方法有哪些?★☆
10.常见的状态码200,206,302,304,404,501的含义?★★☆
11.什么是报文?★★☆
12.HTTP协议栈是怎么样的?★★★
13.什么是DNS?★
14.什么是端口号?★
15.在浏览器地址栏输入一个HTTP的URL地址,按下回车键之后,浏览器怎么通过HTTP显示位于远端服务器中的某个简单HTML资源?★★★☆
16.什么是代理?★☆
17.什么是缓存?★☆
18.什么是网关?★☆
19.什么是隧道?★☆
20.什么是Agent代理?★☆
看完这些题目,心中是否有疑惑呢?那就接着看呗,我来帮您解答心中的疑惑o(^▽^)o
参考答案:
1.什么是HTTP协议?★☆
HTTP:超文本传输协议。使用的是可靠的数据传输协议,在传输的过程中不会被损坏或产生混乱。HTTP可以从遍布全世界的Web服务器商将各种信息块迅速、便捷、可靠地搬移到人们桌面上的Web浏览器上去。
2.Web客户端是什么?☆
Web服务器存储Web类容。Web服务器使用HTTP协议,被称为HTTP服务器。
客户端向服务器发送HTTP请求,服务器会在HTTP响应中回送所请求的数据。
3.Web服务端是什么?☆
Web客户端常见的又各大厂商的浏览器,比如微软的IE浏览器,google的chrome浏览器。
4.什么是资源?★
Web资源寄宿在Web服务器上。所有能够提供Web内容的东西都是Web资源。比如静态文件,能够动态生成内容的软件程序。
5.MIME类型是什么?★☆
MIME:多用途因特网邮件扩展。最初设计MIME是为了解决在不同的电子邮件系统之间搬移报文时存在的问题。HTTP采纳了它,用来描述并标记多媒体内容。
MIME类型时一种文本标记,标识一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔。如text/html,text/plain,image/ipeg。常见的MIME类型有数百个。
6.什么是URI?★
URI:统一资源标识符,在世界范围内唯一标识并定位信息资源。
URI有两种形式:URL和URN。
7.什么是URL?★
URL:统一资源定位符。URL描述了一台特定服务器上某资源的特定位置。
http://www.cnblogs.com/jackson0714/p/algorithm_1.html
URL的第一部分被称为方案(scheme)。说明了访问资源所使用的协议类型。这里使用的时HTTP协议(http://)。
第二部分表示服务器的因特网地址:www.cnblogs.com。
其余部分指定了Web服务器上的某个资源:/jackson0714/p/algorithm_1.html。
几乎所有的URLI都是URL。
8.什么是URN?★
URN:统一资源名,URN是作为特定内容的唯一名称使用的,与目前的资源所在地无关。
9.常见的HTTP方法有哪些?★☆
|
GET |
从服务器向客户端发送命名资源 |
|
PUT |
将来自客户端的数据存储到一个命名的服务器资源中去 |
|
DELETE |
从服务器中删除命名资源 |
|
POST |
将客户端数据发送到一个服务器网关应用程序 |
|
HEAD |
仅发送命名资源响应中的HTTP首部 |
10.常见的状态码200,206,302,304,404,501的含义?★★☆
每条HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。
|
状态码 |
原因短语 |
含义 |
|
200 |
OK |
成功。请求的所有数据都在响应主体中。 |
|
206 |
Partial Content |
成功执行了一个部分或Range(范围)请求。206响应中必须包含Content-Range、Date以及ETag或Content-Location首部。断点续传必考题。 |
|
302 |
Found |
重定向。到其他地方去获取资源。客户端应该是用使用Location首部给出的URL来临时定位资源。将来的请求仍应使用老的URL。 |
|
304 |
NOT Modified |
如果客户端发起了一个GET请求,而资源最近未被修改,则用304说明资源未被修改。带有这个状态吗的响应不应该包含实体的主体部分。缓存必考题。 |
|
305 |
Use Proxy |
用来说明必须通过一个代理来访问资源;代理的位置由Locatin首部给出。 |
|
403 |
Forbidden |
请求被服务器拒绝了。 |
|
404 |
Not Found |
无法找到锁清秋的URL |
|
500 |
Internal Server Error |
服务器遇到一个妨碍它为请求提供服务的错误。 |
|
503 |
Bad Gateway |
服务器现在无法为请求提供服务,但将来可以。 |
11.什么是报文?★★☆
HTTP报文是由一行一行的简单的字符串组成的。HTTP报文都是纯文本,不是二进制代码。
请求报文:从Web客户端发往Web服务器的HTTP报文称为请求报文。
响应报文:从Web服务器发往客户端的报文称为响应报文。
HTTP报文包含以下三个部分:
起始行:报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。如:GET /jackson0714/p/algorithm_1.html HTTP/1.1
首部字段:起始行后面由零个或多个首部字段。以键值对的形式表示首部字段。键和值之间用冒号分隔。首部以一个空行结束。如Content-Type:text/html:charset=utf-8
主体:首部字段空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送Web服务器的数据,响应主体中装载了要返回给客户端的数据。
12.HTTP协议栈是怎么样的?★★★
HTTP是应用层协议。它把联网的细节都交给了通用、可靠的因特网传输协议TCP\IP协议。
HTTP网络协议栈:

TCP协议:
a.传输控制协议
b.无差错的数据传输
c.按序传输(数据总是会按照发送的顺序到达)
d.未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)
13.什么是DNS?★
域名解析服务。将主机名转换为IP地址。如将http://www.cnblogs.com/主机名转换为IP地址:211.137.51.78。
14.什么是端口号?★
80就是端口号。HTTP的URL中没有端口号时,可以假设默认端口号时80。有了IP地址和端口号,客户端就可以很方便地通过TCP/IP进行通信了。
15.在浏览器地址栏输入一个HTTP的URL地址,按下回车键之后,浏览器怎么通过HTTP显示位于远端服务器中的某个简单HTML资源?★★★☆
(1)浏览器从URL中解析出服务器的主机名;
(2)浏览器将服务器的主机名转换成服务器的IP地址;
(3)浏览器将端口号(如果有的话),从URL中解析出来;
(4)浏览器建立一条与Web服务器的TCP连接;
(5)浏览器向服务器发送一条HTTP请求报文;
(6)服务器向浏览器回送一条HTTP响应报文;
(7)关闭连接,浏览器显示文档。
16.什么是代理?★☆
代理是位于客户端和服务器之间的HTTP中间实体。接收所有客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求进行修改之后转发)。
17.什么是缓存?★☆
缓存HTTP的仓库,使常用页面的副本可以保存在离客户端更近的地方。
18.什么是网关?★☆
网关是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于将HTTP流量转换成其他的协议。
19.什么是隧道?★☆
隧道是建立起来之后,就会在两条连接之间对原始数据进行盲转发的HTTP应用程序。常见用途是通过HTTP连接承载加密的安全套接字层(SSL)流量,这样SSL流量就可以穿过只允许Web流量通过的防火墙了。
20.什么是Agent代理?★☆
用户Agent代理是代表用户发起HTTP的客户端程序。比如Web浏览器。另外有些自动发送HTTP请求并获取内容的代理,比如“网络蜘蛛”或者“Web机器人”。
作 者:
Jackson0714
出 处:http://www.cnblogs.com/jackson0714/
关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
不惧面试:HTTP协议(1) - 基础扫盲的更多相关文章
- 不惧面试:HTTP协议(3) - Cookie
v博客前言 先交代下背景,写这个系列的原因是总结自己遇到的面试题以及可能遇到的题目,更重要的是,今年定的目标是掌握网络这一块的知识点,先是搞懂HTTP协议,然后是TCP/IP协议,再就是WCF如何运用 ...
- zigbee智能家居基础扫盲
zigbee Zigbee是基于IEEE802.15.4标准的低功耗个域网协议.根据这个协议规定的技术是一种短距离.低功耗的无线通信技术.这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和&qu ...
- ARP协议的基础知识
关于ARP协议的基础知识 1.ARP的工作原理 本来我不想在此重复那些遍地都是的关于ARP的基本常识,但是为了保持文章的完整性以及照顾初学者,我就再啰嗦一些文字吧,资深读者可以直接跳过此节 ...
- c/c++面试总结---c语言基础算法总结2
c/c++面试总结---c语言基础算法总结2 算法是程序设计的灵魂,好的程序一定是根据合适的算法编程完成的.所有面试过程中重点在考察应聘者基础算法的掌握程度. 上一篇讲解了5中基础的算法,需要在面试之 ...
- javascript基础扫盲
JavaScript基础扫盲 null和undefined 非十进制的表示方法 强制类型转换 运算 null和undefined null是一个是非来表示一个空对象的,故 typeof 的返回值是ob ...
- Java基础扫盲系列(-)—— String中的format
Java基础扫盲系列(-)-- String中的format 以前大学学习C语言时,有函数printf,能够按照格式打印输出的内容.但是工作后使用Java,也没有遇到过格式打印的需求,今天遇到项目代码 ...
- 【对线面试官】Kafka基础入门
<对线面试官>系列目前已经连载33篇啦,这是一个讲人话面试系列 [对线面试官]Java注解 [对线面试官]Java泛型 [对线面试官] Java NIO [对线面试官]Java反射 &am ...
- 面试又被 Java 基础难住了?推荐你看看这篇文章。
本文已经收录自 JavaGuide (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. 1. 面向对象和面向过程的区别 面向过程 :面向过程性能比面 ...
- JAVA面试精选【Java基础第一部分】
这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...
随机推荐
- Spring IOC 之Bean作用域
当你创建一个bean定义的时候,你创建了一份通过那种bean定义的bean的创建类的真正实力的处方.bean的定义是一个处方 的想法是很重要的的.因为这意味着,对于一个类你可以创建很多对象实例从一个单 ...
- MySQL之查询优化方式(笔记)
1.COUNT() 对COUNT的优化可以通过下面的SQL实现 mysql> select count(gnp<10000 or null) as '<<<<',c ...
- SQLServer访问Oracle查询性能问题解决
原文:SQLServer访问Oracle查询性能问题解决 1. 问题 系统有个模块,需要查询Oracle数据库中的数据.目前是通过建立链接服务器实现的. SQLServer访问Oracle实现 可参考 ...
- Asp.Net MVC页面静态化功能实现一:利用IHttpModule和ResultFilter
由于公司现在所采用的是一套CMS内容管理系统的框架,所以最近项目中有一个需求提到要求实现页面静态化的功能.在网上查询了一些资料和文献,最后采用的是小尾鱼的池塘提供的 利用ResultFilter实现a ...
- Android在View拉丝工艺和invalidate()和其他相关方法
转载请注明出处:http://blog.csdn.net/qinjuning 前言: 本文是我读<Android内核剖析>第13章----View工作原理总结而成的,在此膜拜下作者 . ...
- GoogleGoogle搜索解析
GoogleGoogle搜索解析 是一个类似Google趋势SEO 在 线keyword工具.它的正式口号提出“在搜索些什么”.利用Google搜索解析,能够比較特定区域.类别.时间范围以及搜索资源之 ...
- Lambda表达式、依赖倒置
ASP.NET MVC学前篇之Lambda表达式.依赖倒置 ASP.NET MVC学前篇之Lambda表达式.依赖倒置 前言 随着上篇文章的阅读,可能有的朋友会有疑问,比如(A.Method(xxx= ...
- Object C和C#的差异
从C#到Object C,循序渐进学习苹果开发(1)--准备开发账号和开发环境 本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台开发苹果开发的一系列感想和体验历程,本系列文章是在起步 ...
- iOS基础 - 完善键盘处理
1.完善键盘处理 步骤一:创建一个数组,里面装着所有的文本框. 步骤二:监听所有文本框的开始编辑,设置所有文本框的代理为控制器 1.设置生日和城市不允许键盘输入 2.当开始编辑的时候调用,用一个成员属 ...
- 【学习笔记】锋利的jQuery(三)事件和动画
一.jQuery事件 1,加载事件 $(document).ready(function(){...}) //等同于$(function(){..}) $(window).load(function( ...