最全面的Http相关的面试题(协议、post/get、响应code、htpps)

1.1 Http协议

HTTP(HyperText Transfer Protocol:超文本传输协议)。

1.2 Http请求头

Http头

说明

样例

Content-Type

让服务器知道客户端数据格式

application/json

Accept

指定客户端能够接收的内容类型

*/*

accept-encoding

指定客户端浏览器可以支持的web服务器返回内容压缩编码类型

gzip

accept-language

指定HTTP客户端浏览器用来展示返回信息所优先选择的语言

zh-CN

Connection

表示是否需要持久连接

keep-alive

Host

客户端地址

www.baidu.com

Origin

目标地址

https://www.baidu.com

Connect-Length

请求头的长度

100

Connect-Type

显示此HTTP请求提交的内容类型

multipart/form-data

User-Agent

客户端信息

Mozilla/5.0

x-Requested-With

是否为同步请求

1.3 HTTP Method

请求方法

说明

数据库操作

post

新增 post /url 多次post不幂等

C

get

查询 get /url/id

R

put

更新 put /url/id 多次put幂等

U

delete

删除 /delete/id

D

1.4 Http响应Code

code

描述

以1开头(1xx)

临时响应,表示请求已被处理,需要继续处理。服务器处于收到请求的过程中

以2开头(2xx)

请求被服务器成功接收

以3开头(3xx)

重定向

以4开头(4xx)

客户端请求错误(由于客户端这边的问题,服务器无法处理。如客户端这边的数据格式不对、给的资源路径 不对、权限不足等)

以5开头(5xx)

服务端内部错误(服务器处理出错,服务端内部业务异常或系统异常)

1.5 URL长度限制

URL长度的限制由浏览器规定的,而不是HTTP协议。以下是一些浏览器对http中url长度的限制大小。

编号

浏览器

长度(字节)

1

IE

2048

2

360

2118

3

Firfox

65536

4

Safari

80000

5

Opera

190000

6

Chrome

8182

当然大家会说我是搞开发的,我不用浏览器那么长度限制吗?比如用apache-httpclient,我试httpclient也同样是有长度限制的,过长就返回400错误了。

1.6 Http与Tcp之间的关系

HTTP协议是可靠的数据传输协议。可靠性是依赖于传输层的TCP协议来实现的。也就是说,HTTP协议的底层是TCP协议,通过TCP协议的可靠性从而保证HTTP协议也是可靠的。

1.7 Get与Post的区别

get

post

url可见性

参数可见

参数一般放在request body中一般不可见

数据传输

拼接url的方式

request body中

缓存

可缓存,get是幂等的

不缓存,也就是post不是幂等

传输数据大小

有限且与浏览器相关,一般在2~4k左右

可无限

安全性

一般来说get没post安全

对于网络抓包来说http的数据都不安全

1.8 Http与Https区别

  • 端口方面:HTTP的URL由“http://”起始且默认使用端口80,而HTTPS的URL由“https://”起始且默认使用端口443。

  • 安全性:HTTP协议运行在TCP之上,所有传输的内容都是明文。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS 运行在TCP之上。所有传输的内容都经过加密,加密采用数字信封技术,https需要数字证书的支持。

  • 资源消耗:HTTPS 比HTTP耗费更多服务器资源及性能。

你可能感兴趣的:(http,网络,服务器,http面试,最全的)