【要点】

1. HTTP协议的主要特点
2. HTTP报文的组成部分
3. HTTP方法
4. POST 和 GET的区别
5. HTTP状态码
【总结】

HTTP协议的主要特点


主要特点:简单快速, 灵活, 无连接(非keep-alive),无状态

  • 每个资源URI是固定的,想访问某个资源 ,浏览器里输入URI就可以了。
  • 灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记。
  • 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • 无状态:是指协议对于事务处理没有记忆能力。后续处理需要前面的信息的时候必须要重新传。

【补充】什么是URI? 什么是URL? 区别是什么?

 简单总结:

URI--统一资源标识符

URL(Uniform Resource Locator):统一资源定位符有时也被俗称为网页地址。

URL 是 URI 的子集 

  

HTTP报文组成


用于HTTP协议交互的信息被称为HTTP报文。

  • 请求端的HTTP报文叫做请求报文

    • 请求行: 包含用于HTTP方法,请求URI和HTTP版本
    • 请求头:key: value 包含表示请求和响应的各种条件和属性的各类首部
    • 空行: 告诉服务端接下来是请求体了
    • 请求体

  如下图:

  • 响应端叫做响应报文

    • 状态行: 包含表明响应结果的状态码,原因短语和HTTP版本
    • 响应头,
    • 空行,
    • 响应体: ...

HTTP方法


  • POST:传输实体内容资源
  • GET:获取资源
  • PUT:更新资源
  • HEAD:获得报文首部
  • DELET:删除文件

考点:POST和GET的区别?】(记住3-5个)

  • GET在浏览器回退时是无害的,而POST会再次提交请求。  
  • GET产生的URL地址可以被Bookmark,而POST不可以。  
  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。  
  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。  
  • GET请求在URL中传送的参数是有长度限制的(2kb 不同浏览器也会有所不同),而POST没有。  
  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。  
  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
  • GET参数通过URL传递,POST放在Request body(请求主体)中。
  • GET请求只能进行url编码 -- encodeURIComponent(),而POST支持多种编码方式。

【补充】POST数据的格式与查询字符串格式相同,如果需要将页面中表单的数据进行序列化,然后再通过 XHR 发送到服务器,可以使用 serialize()函数来创建这个字符串,也就是表单序列化

HTTP状态码


需要记住一些经常碰到的,其他状态码可查阅HTTP状态码文档

  • 1xx:指示信息,请求正在处理中
  • 2xx:请求正常接收
    • 200: ok
    • 206:“Partial Content”响应: 客户端发送了一个带有Range请求头的Get请求,是表明自己只需要url上部分的资源,服务器完成了它。 比如:video audio播放一个很大的视频/音频地址时,一般会返回206
  • 3xx:重定向 需要进行附加操作才算完成请求
    • 301: 永久重定向,所请求的页面已经转移至新的URL
    • 302: 临时重定向
    • 304:缓存,服务器告诉浏览器可以直接使用缓存,不用请求服务器了
  • 4xx(客户端错误)
    • 400: 客户端语法错误
    • 401: 请求授权失败
    • 403: 请求不允许 Forbidden资源禁止被访问
    • 404: 没有发现文件、查询或URl
  • 5xx(服务器端错误)
    • 500:服务器不可预计的错误
    • 501: "Internal Server Error" 服务器端在执行请求时发生了错误,此时服务器并没有正常工作
    • 503: 服务器当前不能处理客户端的请求 临时过载和当机
    • 504: 服务器没连上
    • 505: 服务器不支持或拒绝支请求头中指定的HTTP版本

转载于:https://www.cnblogs.com/hyzm/p/9478718.html

Http协议之报文·方法·状态码相关推荐

  1. 302状态码_HTTP协议详解(基础概念 方法 状态码 首部 连接 Cookie 新特性 安全)

    一 .基础概念 URI URI 包含 URL 和 URN. 请求和响应报文 1. 请求报文 2. 响应报文 二.HTTP 方法 客户端发送的 请求报文 第一行为请求行,包含了方法字段. GET 获取资 ...

  2. 《图解Http》 2-6章: 基础,报文,状态码,首部。

    HTTP协议和Cookie 是stateless协议,自身不对请求和响应之间的通信状态进行保存.但随着技术发展,为了实现保存状态的功能,引入了Cookie技术. Cookie在请求和响应报文中写入信息 ...

  3. HTTP协议中常见的状态码及其含义

    系列文章目录 Fiddler抓包:下载.安装及使用_crazy_xieyi的博客-CSDN博客 HTTP协议格式.URL格式及URL encode_crazy_xieyi的博客-CSDN博客 GET和 ...

  4. 爬虫技术前置准备工作 http url 请求方法 状态码 等等

    http 和 https 协议 浏览器发送http请求的过程 抓取数据包 url详解 当请求网址里有中文的时候 要先编码然后再发请求 常用的请求方法 总共有八种 常用的只有两种 get请求 post请 ...

  5. http协议组成(请求状态码)

    http请求由:请求行:消息报头:请求正文组成 //请求行 Request URL: http://172.32.4.33:8080/operation/v2/autoServer/queryAuto ...

  6. FTP协议常用COMMAND和状态码

    FTP协议常用COMMAND ABOR 中断数据连接程序 ACCT 系统特权帐号 ALLO 为服务器上的文件存储器分配字节 APPE 添加文件到服务器同名文件 CDUP 改变服务器上的父目录 CWD  ...

  7. HTTP协议中几个状态码

    200 OK //客户端请求成功 400  Bad Request//客户端请求有语法错误,不能被服务器所理解 401 Unauthorized//请求未经授权,这个代码必须和WWW-Authenti ...

  8. 301 302区别_302状态码代表什么,302状态码解决方法

    302是HTTP协议中的一个状态码(Status Code).可以简单的理解为该资源原本确实存在,但已经被临时改变了位置:换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指 ...

  9. 实现免密登录,设置只允许student1, student2用户登录,get和post的区别,HTTP状态码,HTTP请求报文和响应报文,HTTP是如何保持连接状态的

    1.实现免密登录 1创建密钥 [root@192 /]# su gzw [gzw@192 /]$ cd /home/gzw/.ssh [gzw@192 .ssh]$ ssh-keygen -t rsa ...

最新文章

  1. Oracle SQL优化
  2. 关于a标签的 href 与 onlick
  3. iOS线程锁中你还不知道的内容
  4. v-model实现数据的双向绑定
  5. 最近公共祖先(Lowest_Common_Ancestors)
  6. 中职计算机英语c答案,中职高考计算机试题及答案-20210622105004.docx-原创力文档...
  7. php java c_当PHP、Java、C、C++ 这几种编程语言变成汽车是什么样的场景?
  8. [CareerCup] 18.8 Search String 搜索字符串
  9. 2017.3.16 下午
  10. Linux 进程管理 (ZZ)
  11. 一片新的ATmega328芯片如何烧录?
  12. 计算机boot进入u盘启动,BIOS中设置U盘启动的几种方法
  13. Git和Code Review流程
  14. 《Charles配置教程之Mac》
  15. 一起写RPC框架(一)RPC之我所见
  16. ng-content、ng-template、ng-container使用及区别
  17. mysql未开启binlog恢复_无全量备份、未开启binlog日志,利用percona工具恢复delete的数...
  18. 去掉flash四周虚线框的方法
  19. 读取文本出现 锘 * 系列乱码错误(UTF-8 BOM问题)的原因及解决方法
  20. 阿里资深技术专家何勉详解研发效能提升的关键

热门文章

  1. sscanf的高级用法
  2. Erlang 位串和二进制数据
  3. [LeetCode]Search Insert Position
  4. SWISHMAX2脚本整理及Swishmax使用技巧
  5. 社交系统ThinkSNS-plus(TS+)V1.0发布!
  6. linux下.a/.so/.la目标库区别
  7. 2016年光伏电站交易和融资的十大猜想
  8. windows10中远程访问凭据不工作
  9. Andorid Scrolling Activity(CoordinatorLayout详情)
  10. javascript时间戳和日期字符串相互转换