一、TCP和UDP的区别?
💐
👨💻面试官:
TCP和UDP的区别是什么?
🙋♂️小宝:
两者协议都是属于运输层
协议,他们之间的区别包括:
TCP
是面向连接的,UDP
是无连接的。TCP
是可靠的,UDP
是不可靠的。TCP
是面向字节流的,UDP
是面向报文的。TCP
支持对点通信,UDP
支持一对一、一对多、多对多的通信模式;TCP
有拥塞控制机制,UDP
没有拥塞控制机制其适合媒体通信。TCP
首部开销(20个字节)
比UDP(8个)
的首个开销时间大;
二、是什么是HTTP?并详细介绍!
💐
👨💻面试官: 是什么HTTP?我想听听你的详细介绍!
🙋♂️小宝:
HTTP: 是超文本传输协议,也就是H
yperText T
ransfer P
rotocol。
首先我们先对这三个单词进行逐一分析:
H
yperText:超文本。T
ransfer:转移、运输。P
rotocol:协议。- 文本是什么?
一般我们认为txt
文件就是一个文本文件对吧。
而超文本
呢?
我们能通过字面意思理解超越普通文本的文件
!
在电脑和互联网上面有哪些是超过普通文本的文件的?我们肯定都能知道的有音频、视频、图片
等一些不是那么普通的文字文件!
运输是什么呢?
在一般正常的生活中我们经常会通过各种运输工具来进行对我们网购的快递进行运输。
而在互联网就是一个信息等的运输。
例如我们在上网时,A客户端需要对B服务器进行一个请求,然后B得到请求后B服务器会做相应的应答,把一些我们请求的资源发送给客户端A,则A能够在浏览器上面查看到自己想要的资源!
协议又是什么呢?
我们还是通过生活中的例子来举例。比如我们在生活中租房、工作等都是需要和他人签订一个合同—也就是说我们正常的协议
!
而在互联网上,如果我们需要上网则也是需要遵守一定的互联网协议
才能上网冲浪!而HTTP
是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范(两个以上的参与者
),以及相关的各种控制和错误处理方式。
好了,经过上面的介绍我们就已经可以大概的理解了超文本传输协议
的具体意义—HTTP是一个在计算机世界里面专门在两点之间传输文字。音频。视频。图片等超文本数据的约定和规范!
三、HTTP常见的状态码
💐
👨💻面试官: 请你说说HTTP中比较常见的状态码吧
🙋♂️小宝:在HTTP中的状态码可以分为
5
种:
- 1xx:提示信息,表示目前协议处理的中间状态,还需要后续的操作;
- 2xx:是经常遇见的一种状态码,则表示请求成功,报文已经收到并正确的处理。
状态码有:200
:表示请求成功!204
:同上。但是响应头没有body
数据。206
:返回部分body
数据。- 3xx:表示请求的
重定向
,资源位置发生变动,需要客户端重新发送请求;状态码有:
301
:永久的重定向,需要访问新的URL
。
302
:临时重定向。304
:缓存重定向。- 4xx:也是在写项目种比较常见的一种状态码。大体表示客户端错误,请求报文错误,服务器无法处理。则
404
就是最常见的服务器找不到资源。
状态码有
400
:表示客户端请求的报文有错误。403
:表示服务器禁止访问资源,并不是客户端的错误。404
:服务器找不到资源。- 5xx:一般表示服务器发生错误,服务器在处理请求时内部发生了错误。
状态码有:
500
:只是有一个大概的错误。501
:网页还没正式公开。502
:后端服务器出现问题。503
:网络繁忙。- 四、HTTP常见的字段有哪些?
四、HTTP常见的字段有哪些?
💐
👨💻面试官: 看你上面的这么熟练,咱们来聊聊http常见的字段吧!
🙋♂️小宝:好的面试官。
首先最常见的字段Host
:是客户端发送请求时,用来指定服务器的域名的。当有了Host
字段后我们能访问同一台服务器的不同网站。而不会去随机访问其他的服务器。
通过一个例子:我们在一个100人的班级里,我们需要找到一个不认识的人。我们可以通过其名字来找到该人。
例如:需要找一个姓名为:小宝的同学,我们只需要在班级里喊一声小宝后就会得到本人的答复。
姓名:Host
,小宝:网站名称
。
还有Content-Length
字段
服务器在返回时,会有Content-Length
字段,表明本次回应的数据长度。
例如: Content-Length : 1000;
则表示服务器返回数据长度时1000个字节
。
💐
👨💻面试官: 还有吗?
🙋♂️小宝:还有的面试官!
还有Connection字段。一般Connection字段用于客户端对服务器使用TCP持久链接,以便其他请求的复用。在HTTP/1.1版本的默认连接都是持久连接,但是为了兼容老版本的HTTP,需要指定Connection首部字段的值为Keep-Alive。
例如:Connection:keep-Alive,这样一个复用的TCP连接就建立了,直到客户端或服务器主动关闭连接。
Connent-Type
字段在请求中 (如POST 或 PUT),Content-Type字段用于客户端告诉服务器实际发送的数据类型。
格式:
Content-Type:type/subtype ;parameter
type
:主类型,任意的字符串,如text,如果是号代表所有;
subtype
:子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;
parameter
:可选参数,如charset,boundary等。
例如:
Content-Type: text/html;
Content-Type: application/json;charset:utf-8;
Connect-Encoding
字段
则表示服务器返回的数据解压
方式。
一般客户端会使用Accept-Encoding
来告诉服务器自己能接收的压缩数据格式。