java get与post区别_HTTP请求(GET与POST区别)和响应

HTTP有两部分组成:请求与响应,下面分别整理。

一.HTTP请求

1.HTTP请求格式:

[]

在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。

2.GET与POST区别

HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST(Ajax开发,关心的只有GET请求和POST请求)。

GET与POST方法有以下区别:

(1)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

(2)GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

(3)安全性问题。正如在(1)中提到,使用Get的时候,参数会显示在地址栏上,而Post不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用post为好。

(4)安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一URL的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。换句话说,GET请求一般不应产生副作用。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。POST请求就不那么轻松了。POST表示可能改变服务器上的资源的请求。仍然以新闻站点为例,读者对文章的注解应该通过POST请求实现,因为在注解提交之后站点已经不同了(比方说文章下面出现一条注解)。

GET与POST方法实例:GET实例

POST实例

GET /books/?name=Professional%20Ajax HTTP/1.1

Host: www.wrox.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)

Gecko/20050225 Firefox/1.0.1

Connection: Keep-Alive

POST / HTTP/1.1

Host: www.wrox.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)

Gecko/20050225 Firefox/1.0.1

Content-Type: application/x-www-form-urlencoded

Content-Length: 40

Connection: Keep-Alive

(此处空一行)

name=Professional%20Ajax&publisher=Wiley

3.表单提交中get和post方式的区别归纳如下几点:

(1)get是从服务器上获取数据,post是向服务器传送数据。

(2)对于表单的提交方式,在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取。

(3)一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。

二.HTTP响应

1.HTTP响应格式:

[]

在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。

HTTP响应实例:

HTTP/1.1 200 OK

Date: Sat, 31 Dec 2005 23:59:59 GMT

Content-Type: text/html;charset=ISO-8859-1

Content-Length: 122

<html>

<head>

<title>Wrox Homepage</title>

</head>

<body>

<!-- body goes here -->

</body>

</html>

2.最常用的状态码有:

◆200 (OK): 找到了该资源,并且一切正常。

◆304 (NOT MODIFIED): 该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。

◆401 (UNAUTHORIZED): 客户端无权访问该资源。这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器。

◆403 (FORBIDDEN): 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。

◆404 (NOT FOUND): 在指定的位置不存在所申请的资源。

posted on 2007-11-29 15:40 sun 阅读(56924) 评论(14)  编辑  收藏 所属分类: Ajax 、HTTP

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

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

相关文章

07.用户故事与敏捷方法——优秀用户故事准则笔记

00.一个更好的办法是换一种方式编写故事,每个故事都提供某种程度的完整(end-to-end)的功能。 01.尽管不十分完美,即使只提供部分功能,但只要发布的功能可以跑,就可以放心地把应用程序发布给用户使用。 02.一…

java学习(31):for循环

/5使用Eclipse编写控制台应用程,利用for循环计算输入的两个整数的最大公约数和最小公倍数。/ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner innew Scanner(System.in); System.out.println(“输入两个整数”);…

java jxl 写 excel文件_Java使用jxl写入Excel文件

首先添加jxl的maven依赖:net.sourceforge.jexcelapijxl2.6.12示例代码:import java.io.File;import java.io.IOException;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.wr…

kali BEEF-XSS启动报错解决

kali Linux自带BEEF框架&#xff0c;长时间搁置后启动报错&#xff1a; rootkali:/usr/share/beef-xss# ./beef Traceback (most recent call last): 14: from ./beef:32:in <main> 13: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in require 12:…

java学习(32):巩固练习

/6使用Eclipse编写控制台应用程&#xff0c;利用循环模仿一个用户的注册&#xff0c; 输入用户名和密码&#xff0c;判断用户输入的用户名是否长度位于4到16个字符之间&#xff0c; 如果不满足要求则应能够让用户重写输入&#xff0c;判断密码长度是否在6到16个字符之间 &#…

java 注释引用_Eclipse java 注释 --引用

引用--设置注释模板的入口&#xff1a; Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍&#xff1a;文件(Files)注释标签&#xff1a;/** * Title: ${file_name} * Package ${pa…

CSS单位和颜色

CSS单位 尺寸 单位描述%百分比in英寸cm厘米mm毫米em 1em 等于当前的字体尺寸。 2em 等于当前字体尺寸的两倍。 例如&#xff0c;如果某元素以 12pt 显示&#xff0c;那么 2em 是24pt。 在 CSS 中&#xff0c;em 是非常有用的单位&#xff0c;因为它可以自动适应用户所使用的字体…

java学习(33):巩固练习

/7使用Eclipse编写控制台应用程&#xff0c;利用循环统计用户从控制台输入的N多个整数&#xff0c;对其进行依次判断&#xff0c; 对偶数进行累加&#xff0c;对奇数进行累加&#xff0c;最后比较奇数和与偶数的的差&#xff0c;输出如下信息 偶数个数15&#xff0c;奇数个数10…

java面向对象程序设计董小园_java面向对象程序设计(董小园版).doc

目 录TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc238553494" 第1章了解Java PAGEREF _Toc238553494 \h 2HYPERLINK \l "_Toc238553495" 第2章面向对象的“对象” PAGEREF _Toc238553495 \h 7HYPERLINK \l "_Toc238553496" 第3章对象的属…

[HAOI2008]糖果传递 结论题

题目描述 有\(n(n<1000000)\)个小朋友坐成一圈&#xff0c;每人有\(a_i\)个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为\(1\)&#xff0c;求使所有人糖果数相等的最小代价。 暴力的做法比较显然&#xff0c;有\(30\)分&#xff0c;这里就不再赘述了。 推…

java学习(34):巩固练习

/1 使用Eclipse编写控制台应用程, 提示老师预计输入&#xff1f;个学生成绩&#xff0c;接收此数后&#xff0c;最为创建int类型数组的大小限制&#xff0c; 使用循环统计包含N个元素的数组&#xff0c;对包含的成绩进行统计&#xff0c;计算如下&#xff1a; 共接收成绩数量是…

artTemplate/template.js模板将时间戳格式化为正常的日期

1&#xff1a;引用<script type"text/javascript" src"../js/artTemplate/template.js"></script> 2&#xff1a;在正常渲染中引入方法 | timestamp: yyyy-MM-dd hh:mm:ss <div>开始时间<span>{{value.endTime | timestamp: yyyy-…

java学习(35):巩固练习

/2使用Eclipse编写控制台应用程,将给定的如下数组进行互换存储&#xff0c;互换原则如下所示 源整型数组 { 56,28,15,999,30,65,12,77} 互换后数组元素排列 {77, 12,15,999,30,65, 28, 56}/ public class test04 { public static void main(String[] args){ int[] arr{56,28,15…

java 并发 主键_高并发数据库自增主键分析

在一般情况下&#xff0c;在新增领域对象后&#xff0c;都需要获取对应的主键值。使用应用层来维护主键&#xff0c;在一定程度上有利于程序性能的优化和应用移植性的提高。在采用数据库自增主键的方案里&#xff0c;如果JDBC驱动不能绑定新增记录对应的主键&#xff0c;就需要…

单实例数据库和多实例数据库

java持续学习中&#xff0c;暂时说说工作上学到的知识 单实例数据库模式 单实例模式下,一个数据库只能通过一个实例进行访问 RAC(Real Application Clusters)集群模式下,共享数据库文件,一个数据库生成多个相同的实例被用户访问。

java list 从0开始_Java从零开始学二十一(集合List接口)

package com.pb.demo1;import java.util.LinkedList;import java.util.List;public class PersonLinkedListTest {public static void main(String[] args) {/** 创建多个Person对象并赋值*/Person p1 new Person("张三",21);Person p2 new Person("李四"…

[Swift]LeetCode482. 密钥格式化 | License Key Formatting

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

oracle用户相关操作

我们主要学习数据库的一些基本操作&#xff0c;比如如何在数据库创建用户&#xff0c;授权&#xff0c;删除用户&#xff0c;回收权限&#xff0c;为用户加锁或者解锁等一些常用的操作。 首先&#xff0c;我们要知道数据库中创建用户的语句怎么写&#xff0c;看下面: 1.创建用户…

java显示时间_Java如何显示日期和时间?

在Java中&#xff0c;如何显示当前日期和时间&#xff1f;此示例显示如何使用Formatter类的fmt.format()方法和Calendar类的Calendar.getInstance()方法来显示当前日期和时间。package com.yiibai;import java.text.SimpleDateFormat;import java.util.Calendar;import java.ut…

小程序返回上一页并传参

点击返回上一页事件&#xff1a; returnPre:function(e){let pages getCurrentPages();let prevPage pages[pages.length - 2];prevPage.setData({discount: e.currentTarget.dataset.discount,})wx.navigateBack({delta: 1,})} 其中getCurrentPages() 函数用于获取当前页面栈…