http协议类

1)http协议的主要特点

            简单快速   统一资源符

灵活          通过http协议,可以修改http头,完成不同数据类型的传输

无连接       连接一次就会断掉不会保持连接

无状态       客户端与服务器连接一次断了之后再次连接,服务器并不知道客户端是谁

      2)http报文的组成部分

           1、请求报文

                 请求行     (请求方式,http/http版本)

                 请求头

空行

请求体

           2、响应报文

                  状态行

响应头

空行

响应体

      3)http的方法

            GET            ->        获取资源

            POST          ->        传输资源

PUT             ->        更新资源

DELETE      ->        删除资源

HEAD          ->        获取报文首部

      4)post和get的区别

            1、get参数在url里传递,post参数放在请求体里

2、get只支持url编码,post支持多种编码方式

3、get有长度限制,post没有限制

4、get比post更加不安全,get参数会暴露在url里,不能用来传递敏感数据

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

6、get请求的url地址可以被收藏,post不可以

7、get浏览器回退是无害的,而post会再次提交

8、get请求参数会保留在浏览器历史记录里,而post不会

      5)http状态码

            1xx、指示信息-表示请求已被接收,继续处理

2xx、成功-表示请求已被成功接收(200:客户端请求成功  206:客户发送range头的get请求,服务器完成了它)

3xx、重定向-要完成请求必须进行进一步的操作 (301:所有请求的页面已经转移至新的url,302:所请求的页面已经临时转移到了新的url,304:客户端有缓存的文档发出一个条件性请求,服务器告诉用户原来缓存的文档还可以使用)

  4xx、客户端错误-请求有语法错误或请求无法实现(400:客户端请求有语法错误,不能被服务器所理解,401:请求未被授权,403:请求的页面的访问被禁止,404:请求资源不存在)

5xx、服务器错误-服务器未能实现合法的请求(500:服务器发生不可预期的错误,503:请求未完成,服务器临时过载或当机,一段时间后可恢复正常)

      6)什么是持久化连接(1.1才支持Keep-Alive)

            http协议采用“请求-应答”模式,当使用普通模式,及非keep-alive模式时,每个请求/应答客户和服务器都要新建一个连接,完成以后会立即断开(http协议为无连接的协议)

当使用Keep-Alive模式(又称持久连接,连接重用)时,Keep-Alive功能是客户端到服务器端的链接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了简历或者重新建立连接

      7)什么是管线化    

           在使用持久化连接的情况下,某个消息的传递类似于这样

请求1->响应1->请求2->响应2->请求2->响应2

管线化的消息传递类似于这样(1、原理:打包一次返回    2、只有get和head请求支持,post有所限制   3、初次不要启动管线机制,对方不一定支持)

请求1->请求2->请求3->响应1->响应2->响应3

最新文章

  1. vert.x学习(四),使用模板解析器ClassLoaderTemplateResolver
  2. 挣值管理(PV、EV、AC、SV、CV、SPI、CPI)记忆之我见
  3. JSP--监听HTTP会话
  4. Python学习教程(learning Python)--1.1Python程序设计流程
  5. Qt5.0.2无法发布问题
  6. 后台管理UI
  7. 关于在R中无法引用自己的xml文件
  8. 一步一步学习Vue(六)
  9. docker-compose的使用
  10. 第一章 JQuery概述
  11. 测试Linux下tcp最大连接数限制
  12. java数据写入Excel
  13. 洗礼灵魂,修炼python(29)--装饰器(1)—>利用经典案例解析装饰器概念
  14. 01Hadoop简介
  15. 为什么你的session不见了
  16. linux使用指导-debian/archlinux/LFS
  17. ng-bind-html-unsafe的替代
  18. JAVA随笔(三)
  19. Bootstrap-Plugin:附加导航(Affix)插件
  20. Qt中使用ActiveX控件

热门文章

  1. 微信带参数的小程序码生成并上传到七牛云(java)
  2. iOS开发之长按浮动操作选择项
  3. 搭PHP本地环境-windows
  4. React子组件继承父组件的props
  5. win10 扩展c盘 “PARTITION_BASIC_DATA_GUID"
  6. PHP_单例模式、实例代码
  7. Linux下设置目录或文件可读写,但不可以删除权限
  8. http如何全站301重定向到https
  9. QT部署安装以及后续更新(一)
  10. ubuntu fastdds安装