面试之HTTP协议基础(1)


    HTTP协议特点:
简单快速  客户向服务器请求服务时,只需传请求方法和路径。uri
灵活    客户可以请求任何数据类型数据,在content-type中设置
无连接  限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,可以节省传输时间
无状态  HTTP协议对事务不具有存储功能,每一次请求不会记录上一次的请求状态。服务器用session方式。

    HTTP状态码:
1xx  指示消息 -表示请求已接收
2xx  成功
3xx  重定向
4xx  客户端错误
5xx  服务器错误

200  客户端请求成功
206  客户发送一个带有rang头的GET请求  如请求视频
301  永久重定向到新的
302  临时重定向
304  客户端有缓存,
400  请求语法出错
403  请求资源禁止访问,只能通过服务器去访问
404  请求资源不出存在

    HTTP方法:
GET   获取资源
POST  传输资源
PUT   更新资源
DELETE 删除资源
HEAD   请求报文首部
    GET和POST的区别
GET在浏览器回退时是无害的,而POST会再次提交请求
GET请求的参数长度有限制2kB POST没有限制
GET请求参数通过URL上    POST在request body里面
GET请求会会被浏览器主动缓存,POST需要手动设置
GET请求参数会被完整保留在浏览器历史记录里,而POST的参数不会被保留(csri攻击)

    HTTP报文:
请求报文:
    请求行   HTTP方法  请求URI  协议  版本 
    请求头    keyValue值  请求数据类型
    空行    告诉服务器请求头结束
    请求体    请求内容
响应报文:
    响应行  协议 版本  状态码
    响应头  
    空行
    响应体  根据请求头返回相应请求体类型

    HTTP协议持久连接
HTTP协议采用请求-应答 模式,当使用普通模式,即非 Keep-Alive模式时,每个请求/应答客户端和服务器都要新建一个连接,完成之后立即断开连接。 无连接
当使用Keep-Alive模式时,采用持久连接,该功能使客户端到服务器的连接持续有效,当出现对服务器的后续请求时,Keep-Alive功能避免了建立或者重新建立连接。
HTTP1.1才支持持久连接
    HTTP管线化    这个管线化我知道原里,知道怎么用。我这块没有认真研究过。
管线化,通过  请求一个响应一个,才继续下一个请求
请求统一打包,响应统一返回,仅HTTP/1.1
特点:
通过持久连接完成,仅HTTP/1.1支持此技术
只有GET/HEAD支持,POST有所限制
初次创建连接时不要启动管线机制,有可能服务端不支持HTTP1.1

猜你喜欢

转载自blog.csdn.net/weixin_38249463/article/details/82144500
今日推荐