http协议相关面试题整理

1、 什么是http协议无状态协议?怎么解决http协议无状态协议?

(1)无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息

(2)无状态协议解决方法:通过1、cookie 2、通过session会话保存

2、http报文由什么组成?

请求报文包括:

(1)请求行:包含请求方法,URL、http版本协议

(2)请求首部字段

(3)请求内容实体

响应报文包括:

(1)状态行:包括http版本、状态码、状态码原因短语

(2)响应首部字段

(3)响应内容实体

3、http协议实现的原理机制

整个流程步骤

域名解析--》发起tcp的三次握手--》发起http请求--》服务器响应http请求--》浏览器解析html代码,并请求html代码中的资源--》浏览器对页面进行渲染呈现给用户

4、常用的http方法有哪些?

GET:用于请求访问已经被URI识别的资源,可以通过URL传参给服务器

POST:用于传输信息给服务器,主要功能与get方法类似,但一般推荐使用POST方式

PUT:传输文件,报文主体中包含文件内容,保存到对于URI位置。

HEAD:获得报文首部,与get方法类似,只是不返回报文主体,一般用于验证URI是否有效

DELETE:删除文件,与PUT方法类似,删除对应URI位置的文件

OPTIONS:查询相应URI支持的HTTP方法

5、POST与GET的区别

(1)get在浏览器回退时是无害的,而post会再次请求

(2)get产生的url地址可以被收藏,而post不会

(3)get请求会被浏览器主动缓存,而post不会,除非手动设置

(4)get只能进行url编码,而post支持多种编码

(5)get请求参数会被完整保留在浏览器历史记录里,而post中的参数不会被保留

(6)get请求在url中传送的长度有限制,而post没有

(7)get的参数直接暴露在url上,所以不能用于传递敏感参数

(8)get产生一个TCP数据包,post产生两个tcp包(对于get,浏览器会把http header和data一起发送出去,服务器响应200;而对于post,浏览器先发送header,服务器响应100continue,浏览器再发送data,服务器响应200ok)

6、http请求常见的状态码

(1)2开头,表示成功处理了请求的状态代码

200 (成功)服务器已成功处理了请求

(2)3开头(请求被重定向)表示要完成请求,需要进一步操作

302(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求

304(未修改)自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容

(3)4开头(请求错误)

400(错误请求)服务器不理解请求的语法

401(未授权)请求要求身份验证

403(禁止)服务器拒绝请求

404(未找到)服务器找不到请求的网页

(4)5开头(服务器错误)

500(服务器内部错误)

502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应

505(http版本不支持)

7、http与https有什么区别?

(1)https协议需要ca申请认证书,一般免费的较少

(2)http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议

(3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,厚泽是443

(4)http的连接很简单,是无状态的,https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议,比http安全

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(测试,测试面试题)