http get 消息的作用是什么?_http基础知识

什么是http?

HTTP 全称是 HyperText Transfer Protocol,即:超文本传输协议,从 1990 年开始就在 WWW 上广泛应用,是现今在 WWW 上应用最多的协议,HTTP 是应用层协议,当你上网浏览网页的时候,浏览器和 web 服务器之间就会通过 HTTP 在 Internet 上进行数据的发送和接收。HTTP 是一个基于请求/响应模式的、无状态的协议。

http请求方法:

根据 HTTP 标准,HTTP 请求可以使用多种请求方法。

HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。

HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

  • GET:向指定的资源发出“显示”请求,使用 GET 方法应该只用在读取数据上,而不应该用于产生“副作用”的操作中。
  • HEAD:类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头。
  • POST:指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求文本中。这个请求可能会创建新的资源或者修改现有资源,或两者皆有。
  • PUT:从客户端向服务器传送的数据取代指定的文档的内容。
  • DELETE:请求服务器删除 Request-URI 所标识的资源。
  • OPTIONS:使服务器传回该资源所支持的所有HTTP请求方法。用*来代替资源名称,向 Web 服务器发送 OPTIONS 请求,可以测试服务器功能是否正常运作。
  • TRACE:回显服务器收到的请求,主要用于测试或诊断。
  • PTATCH:是对 PUT 方法的补充,用来对已知资源进行局部更新 。
  • CONNECT:HTTP/1.1 中预留给能够将连接改为通道方式的代理服务器。通常用于 SSL 加密服务器的链接(经由非加密的 HTTP 代理服务器)。

GET和POST请求的区别:

  • GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连。 POST方法是把提交的数据放在HTTP包的Body中。
  • GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制。
  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
  • GET请求会被浏览器主动cach,而POST不会,除非手动设置。
  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
  • GET产生一个TCP数据包;POST产生两个TCP数据包。(但有些浏览器下post产生一个数据包)
  • GET请求时幂等的,POST请求是不幂等的。(HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用)。
  • 但GET和POST本质上并没有差别。具体可见:
https://mp.weixin.qq.com/s?__biz=MzI3NzIzMzg3Mw==&mid=100000054&idx=1&sn=71f6c214f3833d9ca20b9f7dcd9d33e4#rd​mp.weixin.qq.com

http状态码

1XX:提示信息—表示请求已接收,继续处理。

2XX:成功,操作被成功接收并处理。

3XX:重定向,需要进一步的操作以完成请求。

4XX:客户端错误,请求包含语法错误或无法完成请求。

5XX:服务器错误,服务器在处理请求的过程中发生了错误。

常用状态码:

  • 100:继续。客户端应继续其请求。
  • 101:切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议。
  • 200:请求成功。一般用于GET与POST请求。
  • 204:表示请求成功,但响应报文不含实体的主体部分。
  • 301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。
  • 302:临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。
  • 303:查看其它地址。与301类似。使用GET和POST请求查看。
  • 304:未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。
  • 400:客户端请求的语法错误,服务器无法理解。
  • 403:服务器理解请求客户端的请求,但是拒绝执行此请求。
  • 404:服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面。
  • 405:客户端请求中的方法被禁止。
  • 500:服务器内部错误,无法完成请求。
  • 502:作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应。
  • 503:由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中。
  • 504:充当网关或代理的服务器,未及时从远端服务器获取请求。

HTTP 消息结构

客户端请求消息:

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。

实例:

GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi

服务器响应消息:

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

实例:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

HTTP首部

《图解HTTP》——HTTP首部。

什么是HTTPS

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTP和HTTPS的区别

  • HTTPS更加安全,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议的信息明文传输安全。
  • HTTPS 需要到 CA 申请证书,一般免费证书很少,需要交费。
  • 端口号不同:HTTP默认端口号80,HTTPS默认端口号443。
  • 状态不同:HTTP的连接很简单,是无状态的。而HTTPS协议是SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410422.shtml

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

相关文章

Jenkins构建 netcore5.0 项目时出现NU3028/NU3037错误的解决方案

我在使用Jenkins自动化部署项目的时候,出现了如下的错误 error NU3028: Package System.IO.Compression 4.3.0 from source https://api.nuget.org/v3/index.json: The repository primary signatures timestamp found a chain building issue: UntrustedRoot: self…

2019长安大学ACM校赛网络同步赛 L XOR

题意 求区间内有多少数x满足x^4x^5x0 1≤l≤r≤1018. 题解 根据异或的性质可以推到 x^4x5x -->x^4xx4x 即x和4x每一位都不同&#xff0c;即x和(x<<2)每一位都不同&#xff0c;就是x中每一位都与他前前一位不同。 那么就很简单了&#xff0c;可以很容易写出数位DP状态f…

[html] 通过设置表单的target=“_blank“来下载文件会被浏览器拦截吗?如何解决?

[html] 通过设置表单的target"_blank"来下载文件会被浏览器拦截吗&#xff1f;如何解决&#xff1f; 不用表单下载&#xff0c;动态创建一个a标签&#xff0c; 设置href, target"_self" 然后a.click() 最后移除个人简介 我是歌谣&#xff0c;欢迎和大家一…

贝塞尔曲线 总结

Bzier curve(贝塞尔曲线)是应用于二维图形应用程序的数学曲线。 曲线定义&#xff1a;起始点、终止点&#xff08;也称锚点&#xff09;、控制点。通过调整控制点&#xff0c;贝塞尔曲线的形状会发生变化。 1962年&#xff0c;法国数学家Pierre Bzier第一个研究了这种矢量绘制曲…

python变量标识符_简谈-Python的注释、变量类型、标识符及关键字

在Python程序中&#xff0c;要想支持中文输出&#xff0c;则要在代码前面添加标识符&#xff1a;开发人员在程序中自定义的一些符号和名称 标示符是自己定义的,如变量名 、函数名等 标识符的规则&#xff1a; 标示符由字目、下划线和数字组成&#xff0c;且数字不能开头 python…

win10使用docker desktop安装k8s一直starting解决方法

在docker中启动k8s一直卡在staring当中查了许多文档都写得不明不白的&#xff0c;研究了许久终于解决决定写个帖子来记录一下 1.首先查看本地docker中k8s的版本拉取源码 我们这里是1.19.7 然后我们进入到 k8s下载 去拉取k8s源码 git clone https://codechina.csdn.net/mirr…

python 字符串翻转

1. 使用字符串切片&#xff0c;步长设置为-1 1 # coding:utf-8 2 3 s “abcdefg123” 4 r s[::-1] 5 print(r) 2. 双端队列 1 # coding:utf-82 from collections import deque3 4 5 def string_reverse4(string):6 d deque()7 d.extendleft(string)8 print …

Android菜单详解(三)——SubMenu和IconMenu

我们在上一篇介绍了如何在Android中创建和响应选项菜单&#xff0c;今天我们将探索子菜单和图标菜单。 子菜单Sub Menu 子菜单提供了一种自然的组织菜单项的方式&#xff0c;它被大量地运用在windows和其他OS的GUI设计中。Android同样支持子菜单&#xff0c;你可以通过addSubMe…

[html] HTML5如何监听video的全屏和退出全屏?

[html] HTML5如何监听video的全屏和退出全屏&#xff1f; 监听fullscreenchange事件document.addEventListener(fullscreenchange, (event) > {// document.fullscreenElement will point to the element that// is in fullscreen mode if there is one. If there isnt one…

python程序代码解析_Python源码分析3 – 词法分析器PyTokenizer

Introduction 上次我们分析了Python中执行程序可分为5个步骤&#xff1a; Tokenizer进行词法分析&#xff0c;把源程序分解为Token Parser根据Token创建CST CST被转换为AST AST被编译为字节码 执行字节码 本文将介绍Python程序执行的第一步&#xff0c;也就是词法分析。词法分析…

模板 - 快速沃尔什变换

空 转载于:https://www.cnblogs.com/Yinku/p/11253632.html

Liunx下使用Nginx负载均衡

我是centos8得主机 安装命令: yum install nginx 如果为Ubuntu主机 sudo apt-get install nginx 安装完成后&#xff0c;启用并启动Nginx服务&#xff1a; sudo systemctl enable nginxsudo systemctl start nginx 然后我们有2个服务&#xff1a; 一个地址为: http://xx…

[html] HTML5的video在手机端如何实现进来页面时就自动播放?

[html] HTML5的video在手机端如何实现进来页面时就自动播放&#xff1f; 理想情况autoplaytrue。但是现实是&#xff1a;基本所有浏览器都屏蔽了这个属性。 能实现的现在只有微信了&#xff0c;微信有一套自己的规则的内核&#xff0c;可以使用&#xff1a;controlslist"…

用python写helloworld_Python Helloworld程序简单实现

对于一个学习过编程语言的朋友来说&#xff0c;肯定会对Helloworld这一词汇记忆深刻。几乎在学习语言初期&#xff0c;我们都会通过这一简单的小程序来对编程语言有一个深入的了解。那么今天就为大家介绍一下Python Helloworld程序的实现方法。 在开始Python Helloworld程序的创…

RO38 –比较RemObjects SDK 通道

本文汇总了RemObjects SDK提供的通道:最通用的通道1) HTTP 通道:使用www超文本传输协议的灵活,网络无关的通信. 2) Super TCP 通道: 在客户端服务端灵活通用的双向传输. 3) Super HTTP 通道- new in Vinci常用的通道Frequently used channels 4) 以前的TCP通道: 通过TCP实现轻量…

java实现自动登录,并获取数据

为抓取 web的一些隐私数据&#xff0c;需要先登录&#xff0c;然后才能获取这些数据&#xff0c;用程序来实现&#xff0c;就需要实现自动登录&#xff0c;然后将登录信息保存在Cookie中&#xff0c;以便取得数据时&#xff0c;无须再次登录。以网易邮箱为例&#xff1a;所需ja…

如何给微软提反馈建议以及bug

1.相信各位在使用.net core的过程中多多少少遇到了bug和为解决的坑那么我们肿么联系微软反馈问题你 1.找到vs编辑器中的反馈按钮 2.点击进入网址 如果是vs的问题选择visual studio栏目,如果为编译问题或者其他问题请选择对应的栏目 然后写下你的问题和截图&#xff0c;尽量详…

[html] 如何使用H5唤起原生地图APP(百度、高德、腾讯地图等)

[html] 如何使用H5唤起原生地图APP&#xff08;百度、高德、腾讯地图等&#xff09; <iframe src"sinaweibo://qrcode"> 或 <a href"intent://scan/#Intent;schemezxing;packagecom.google.zxing.client.android;end"" >或使用现在的唤起…

PS3支持的显示标准介绍

PS3的视频输出分别有&#xff1a;① HDMI 1.3版本02年推出HDMI 1.0版本以来&#xff0c;HDMI规范已经升级数次:2004年5月HDMI升级到HDMI 1.1版本&#xff0c;接着为了更好的兼容PC系统&#xff0c;HDMI LLC在05年8月23日推出了HDMI的1.2版-----此次修订增加了若干条非常重要的改…

巧用.mdb后缀数据库做后门

我不否认n早前的那个把asp木马写到图片文件中不失为一种好的方法&#xff0c;其实不仅可以写到图片啦 写到mp3文件里写到doc文件里都是可以的啦 copy 文件名/参数 文件名/参数 生成文件名 这样的方法可以很灵活的运用来达到隐藏文件的目的&#xff0c;具体的参数就是/a以…