常见的HTTP面试题

1. Get 方法与Post方法的区别

1) get重点在从服务器上获取资源,post重点在向服务器发送数据

2)get传送数据是通过URL请求,以field(字段)的形式,置于URL后,并用“?”连接,多个请求数据间用"&"连接,例如http://127.0.0.1:8080/Test/login.action?name=admin&password=admin,这个过程用户是可见的;post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的。

3)Get传输的数据量少,因为受到URL长度的限制,但效率较高;Post可以传输大量的数据,所以上传文件时只能用post方式。

4)Get是不安全的,因为URL是可见的,可能会泄漏私密信息,如密码等;Post较Get安全性较高。

5)Get方式只能支持ASCII字符,可以正确传递中文字符。

 

2.常见的HTTP相应的状态码

200 (成功) 服务器已经成功处理了请求。通常,这表示服务器提供了请求的网页。

300 (多种选择) 服务器根据请求可执行多种操作。服务器可根据请求者来选择一项操作,或提供操作列表供其选择。

301 永久性重定向

302 临时重定向

303 与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上

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

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

404 (未找到) 服务器找不到请求的网页。例如,对于服务器上不存在的网页经常返回此代码。

500 (服务器内部错误) 服务器遇到错误,无法完成请求。

可以总结为

  • 1xx:指示信息–表示请求已接收,继续处理。
  • 2xx:成功–表示请求已被成功接收、理解、接受。
  • 3xx:重定向–要完成请求必须进行更进一步的操作。
  • 4xx:客户端错误–请求有语法错误或请求无法实现。
  • 5xx:服务器端错误–服务器未能实现合法的请求。

3.HTTP请求的过程

1)域名解析,根据域名找到服务器IP,先是搜索浏览器域名自身的DNS缓存,没有则走下一步,操作系统自己的DNS缓存,没有则走下一步,系统hosts文件,没有则走下一步,向运营商的DNS服务器发起解析请求,没有则走下一步,运营商的DNS代替我们的浏览器发起迭代DNS解析请求。一般都会i走完这几步都差不多了。

2)发起TCP的3次握手

3)建立TCP连接后发起http请求

4)服务器相应http请求,浏览器得到html代码

5)浏览器解析html代码,并请求html代码中的资源(js,css,image)

6)浏览器对页面进行渲染呈现给用户

每次都请求都会经过  客户端的应用层(http协议)-->  客户端的传输层(tcp或udp协议) -->客户端的网络层(ip协议) --> 客户端的链路层(网卡,路由器等) -->  ------------------经过dns解析,穿越多个isp(互联网服务提供商,移动,联通,电信等),各种数据交换,找到了服务器------------------- 服务器的链路层  -->服务器的网络层  -->服务器的传输层  -->服务器的应用层。 这个请求完成了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值