Http协议之报文·方法·状态码

【要点】

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://www.mzph.cn/news/465154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyEclipse 深色主题

Eclipse 是不支持主题的,不过可以通过导入导出perference文件来实现修改文本编辑器配色。 这里是一个深色主题,抓个图给大家看看: 下载地址:http://blog.codefront.net/2006/09/28/vibrant-ink-textmate-theme-for-eclipse/ 这里还…

深入理解嵌入式中重要的编程模型

大家好,我是写代码的篮球球痴。今天我们看一看业界一些著名的编程模型。背景模型是对事物共性的抽象,编程模型就是对编程的共性的抽象。什么是编程的共性呢?最重要的共性就是:程序设计时,代码的抽象方式、组织方式或复…

android v4包自动导入吧,android如何导入v4包的源码

1.我们导入v4包源码却发现没有导入按钮当我们调用android-support-v4.jar里面的控件的时候(这里以android.support.v4.view.ViewPager举例说明),很多时候还需要查看此控件的源码,我们按住Ctrl键点击如下图中的ViewPager之后会出现如下提示出现这个问题的…

【floyd】【bitset】洛谷 P1841 [JSOI2007]重要的城市 题解

bitset玄学完美优化复杂度? 题目描述 参加jsoi冬令营的同学最近发现,由于南航校内修路截断了原来通向计算中心的路,导致去的路程比原先增加了近一公里。而食堂门前施工虽然也截断了原来通向计算中心的路,却没有使路程增加&#xf…

新风口下:嵌入式AI学习中较好的练手项目(附代码资料/学习视频/学习规划)...

有粉丝问我:“当前乃至未来5-10年,嵌入式开发者还有哪些风口?”画外音:风口的本质,其实就是一段时间的人才供需不平衡。说白了就是由于行业突变,敏锐的资本快速进入,导致短时间内行业大量扩张&a…

Windows 任务栏缩略图自定义程序[更新 Build20100830]

很久没有写一点小玩意儿了,今天终于有了一次机会。这个程序能够对 Windows 7 中的任务栏实时预览缩略图进行一系列个性化的调整,使其使用起来更炫更方便,避免了不方便的注册表修改操作,将其转化为方便图形界面,只需要点…

excel 如何使用android,如何使用Android操作Excel文件

这篇文章介绍如何使用Android操作Excel文件Android中操作Excel文件导出报表时主要采用开源库jxl,最早用在java上,但也可用于Android。与之类似的POI,因为依赖库众多,所以只能用于java,而不能用于Android。使用jxl需要在…

我接的是地啊,不,你接的是土!

作者:晓宇,排版:晓宇微信公众号:芯片之家(ID:chiphome-dy)1、我接地了啊,电子设计中,接地是非常重要的,地可不等于土,哈哈,有效的接地…

nis服务器架设

一、NIS定义 NIS(Network Information Service,网络信息服务)也称YP(Yellow Pages)协议,是一个提供目录服务的RPC(远程过程调用)应用服务。通过它,就可以在网络上共享一个集中式的口令文件,从而大大简化客…

邻接矩阵-建立图

1.介绍图的相关概念 图是由顶点的有穷非空集和一个描述顶点之间关系-边(或者弧)的集合组成。通常,图中的数据元素被称为顶点,顶点间的关系用边表示,图通常用字母G表示,图的顶点通常用字母V表示,…

html判断坐标,js判断鼠标位置是否在某个div中的方法

本文实例讲述了js判断鼠标位置是否在某个div中的方法。分享给大家供大家参考,具体如下:div的onmouseout事件让div消失时,会出现这样的情况,就是当鼠标移至div中的其它内容时,此时也判定为离开div,会触发 on…

Busybox 制作文件系统并用 Qemu 启动编译的内核镜像

编译内核操作:https://blog.csdn.net/assiduous_me/article/details/120938556安装Busybox操作:https://blog.csdn.net/assiduous_me/article/details/120939319syzDESKTOP-B10G93S:~$ ls -l total 20 drwxr-xr-x 44 syz syz 4096 Oct 26 22:05 busybox …

深入浅出Win32多线程程序设计之线程通信

简介  线程之间通信的两个基本问题是互斥和同步。  线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。  线程互斥是指对于共享的操作系统…

Kafka Producer源码简述

接着上文kafka的简述,这一章我们一探kafka生产者是如何发送消息到消息服务器的。 代码的入口还是从 kafkaTemplate.send开始 最终我们就会到 org.springframework.kafka.core.KafkaTemplate#doSend方法 这里的关键就是 org.apache.kafka.clients.producer.Producer#…

原来搞单片机也可以面向对象

摘要:在看别人单片机程序时,你也许是奔溃的,因为全局变量满天飞,不知道哪个在哪用了,哪个表示什么,而且编写极其不规范。自己写单片机程序时,也许你也是奔溃的。总感觉重新开启一个项目&#xf…

Cs代码写在html页面哪里,当用于在details.cshtml页面上查看时,我用什么代码来查看模型中的项目列表?...

我正在尝试查看销售订单中的产品列表。它看起来像这样&#xff1a;名称OrderDate OrderTotal Products购买<<被带来的产品。销售订单连接到SalesorderProduct的桥接表。有什么建议。我知道它想要遍历模型&#xff0c;但无法弄明白。Html.DisplayFor(model > model.Cus…

雅虎年底升级IPv6标准 100万用户恐受影响

雅虎年底升级IPv6标准 100万用户恐受影响 http://network.51cto.com 2011-01-20 17:34 佚名 cnBeta 我要评论(0) 据国外媒体报道&#xff0c;雅虎计划今年年底将主站点Yahoo.com升级为IPv6标准&#xff0c;此举可能会使约100万用户在初期无法访问雅虎站点。据国外媒体报道&…

Linux v4l2框架分析

背景说明&#xff1a;Kernel版本&#xff1a;4.14ARM64处理器&#xff0c;Contex-A53&#xff0c;双核使用工具&#xff1a;Source Insight 3.5&#xff0c; Visio1. 概述V4L2(Video for Linux 2)&#xff1a;Linux内核中关于视频设备驱动的框架&#xff0c;对上向应用层提供统…

JAVA自学笔记23

JAVA自学笔记23 1、多线程 1&#xff09;引入&#xff1a; 2&#xff09;进程 是正在运行的程序。是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。 多进程&#xff1a; 单进程的计算机只能做一件事情&#xff0c;而现在的计算机都可以做…

20110126 学习记录:一些关于html中布局的代码 CSS hack速查表

让你的浏览器body滚动条在左边 direction: rtl;HTML段落两端对齐代码text-align:justify; text-justify:inter-ideograph; 图片垂直居中的使用技巧“使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中。” 当然出题并不是随意&#xff0c;而…