不惧面试:HTTP协议(1) - 基础扫盲

v博客前言

先交代下背景,写这个系列的原因是总结自己遇到的面试题以及可能遇到的题目,更重要的是,今年定的目标是掌握网络这一块的知识点,先是搞懂HTTP协议,然后是TCP/IP协议,再就是WCF如何运用这些协议更好地工作。

面试常见题:

  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客户端常见的又各大厂商的浏览器,比如微软的IE浏览器,google的chrome浏览器。

3.Web服务端是什么?☆

Web服务器存储Web类容。Web服务器使用HTTP协议,被称为HTTP服务器。

客户端向服务器发送HTTP请求,服务器会在HTTP响应中回送所请求的数据。

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描述了一台特定服务器上某资源的特定位置。

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,503的含义?★★☆

每条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.什么是端口号?★

http://www.cnblogs.com:80

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/ 关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教! 版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。 特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我 声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯NEXT学位

小程序初学者必读——小程序的简单入门

1913
来自专栏V站

HTTP协议经典详解

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目...

1824
来自专栏我杨某人的青春满是悔恨

HTTP知识点总结

最近互联网这个圈子不是很太平,继阿里缩招降薪,导致很多同学“被拥抱变化”之后,百度也宣布暂时停止社招了。于是有人疾呼“Winter is coming”,有人跟...

651
来自专栏向治洪

React Native 0.50版本新功能简介

React Native在2017年经历了众多版本的迭代,从本人接触的0.29版本开始,到前不久发布的0.52版本,React Native作为目前最受欢迎的移...

2676
来自专栏决胜机器学习

PHP网络技术(一)——HTTP协议

PHP网络技术(一)——HTTP协议 (原创内容,转载请注明来源,谢谢) 一、概述 HTTP协议是一个基于应用层的通信规范,通信双方都遵守此协...

3466
来自专栏xiaoxi666的专栏

【开源程序(C++)】获取bing图片并自动设置为电脑桌面背景

众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸。

381
来自专栏NetCore

终于搞定了网卡 开始正式体验windows7了

昨天说到网卡驱动没有,今天去下载了一个vista版本的,不过不支持安装,只能在设备管理器里手动来选择驱动程序。 现在可以上网了,试了下IE8,郁闷,开了10次窗...

1799
来自专栏刘望舒

Android网络编程(一)HTTP协议原理

前言 这篇文章是这个系列的开篇,作为移动开发者,开发的应用不免会对网络进行访问,虽然现在已经有很多的开源库帮助我们可以轻而易举的访问网络,但是我们仍要去了解网络...

1975
来自专栏信安之路

http 协议详解

HTTP 协议,即超文本传输协议 (Hypertext transfer protocol)。 是一种详细规定了浏览器和万维网 (WWW = World Wid...

780
来自专栏北京马哥教育

RedHat Linux服务器安全配置细节

云豆贴心提醒,本文阅读时间8分钟 1.概述 Linux服务器版本:RedHat Linux AS 2.1 对于开放式的操作系统---Linux,系统的安全设...

2756

扫码关注云+社区