浅析HTTP协议get请求与post请求
一、HTTP简介
1、 HTTP协议:(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则(报文格式)。
2、报文: 客户端与服务端通信时传输的内容我们称之为报文。客户端发送给服务器的称为”请求报文“,服务器发送给客户端的称为”响应报文“。
3、 分类:
请求报文:
get请求
post请求
响应报文:
4、报文格式:

报文首部:包括报文首行和报文头部
二、get请求报文
get请求报文只有:报文首部
//报文首行
GET /bookstore01/b.html?username=dfadf&pwd=dfa HTTP/1.1 //请求方式 请求路径?参数键值对&
//报文头部【键值对格式】
Host: localhost:8080 //请求目标ip地址和端口号
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101Firefox/27.0//当前浏览器
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
//浏览器告诉服务器,浏览器可以接收什么格式的文件
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
//可以判断你是在是哪个位置
zh-cn:简体中文
en-us:美式英语
Accept-Encoding: gzip, deflate
//浏览器告诉服务器浏览器可以识别的解压方式
Referer: http://localhost:8080/bookstore01/index.html
//Referer:指的是当前页面是从哪个页面跳转过来的
Connection: keep-alive
//keep-alive:表示浏览器告诉服务器这是一个长连接
get请求没有空行和报文主体,get请求是通过地址栏传递参数的!
三、post请求报文
//请求首行
POST /bookstore01/b.html HTTP/1.1 //请求方式 请求路径 请求协议/版本号
//请求头部
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:8080/bookstore01/index.html
Connection: keep-alive
//空行
username=zhangsan //报文主体
post请求有空行和请求体, post请求通过请求体传递请求参数!
四、响应报文
//响应首行:
HTTP/1.1 200 OK //协议名称/版本号 响应状态码 状态描述符
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
Etag: W/"262-1510560961503"
Last-Modified: Mon, 13 Nov 2017 08:16:01 GMT
//格林威治时间:
Content-Type: text/html
Content-Length: 262
Date: Mon, 13 Nov 2017 08:44:55 GMT
五、常见的响应状态码
200 :响应成功
302 : 重定向
404 : 请求路径错误
405 : 请求方式有问题 以4XXX开头的响应状态码,都表示是浏览器端的错误
500 : 服务器端的错误,表示自己写的java、jsp代码有bug!
六、get与post请求的区别
1、get请求通过地址栏传递参数,post请求通过请求体传递请求参数,相对安全一点!
2、get请求没有空行和请求体,post请求有
3、get请求传递的字符是有限制的,255个字符,而post请求通过请求体传递参数,没有大小限制
总结:通常只有在form表单中,我们使用的是post请求,而在其它地方都是get请求!
浅析HTTP协议get请求与post请求的更多相关文章
- 浅析HTTP协议的请求报文和响应报文
1.HTTP协议与报文简介 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. 而客户端与服务端通信时 ...
- Http协议简单解析及web请求过程
HTTP协议: HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. 基于HTTP协议的客户端/服务器请求响应机制的信息交换过程包含下面几个步骤: 1) ...
- Http协议入门、响应与请求行、HttpServletRequest对象的使用、请求参数获取和编码问题
1 课程回顾 web入门 1)web服务软件作用: 把本地资源共享给外部访问 2)tomcat服务器基本操作 : 启动: %tomcat%/bin/startup.bat 关闭: %tomcat%/ ...
- http协议以及get和post请求
HTTP协议是网络传输信息的一种规范. 就好比两个人之间的交流,甲只会讲英语,乙只会说汉语,结果是他们必然无法开怀畅谈. HTTP协议也类 GET 请求获取 Request-URI 所标识的资源 ...
- http协议基础(二)请求和响应报文的构成
http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...
- HTTP协议详解之http请求分析
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...
- Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用
Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...
- 协议层安全相关《http请求走私与CTF利用》
0x00 前言 最近刷题的时候多次遇到HTTP请求走私相关的题目,但之前都没怎么接触到相关的知识点,只是在GKCTF2021--hackme中使用到了 CVE-2019-20372(Nginx< ...
- [转] 浅析HTTP协议
浅析HTTP协议 来源:http://www.cnblogs.com/gpcuster/archive/2009/05/25/1488749.html HTTP协议是什么? 简单来说,就是一个基于应用 ...
随机推荐
- Android之setContentView和LayoutInflater
setContentView: 1.常用的构造函数: 1)setContentView(int layoutResID) 2)setContentView(View view) 3)setConten ...
- python实现Deque
1 Deque定义 deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变.deque 不同的地方是添加和删除项是非限制性的.可以在前面或后面添加新项 ...
- 设计模式 之 《建造者模式(Builder)》
#ifndef __BUILDER_MODEL__ #define __BUILDER_MODEL__ #include <string> #include <vector> ...
- Qt Quick之Canvas
QML中的Canvas,俗称画布,它用来定义一个绘图区域,可以使用ECMAScript代码来绘制直线,矩形,贝塞尔曲线,弧线,图片,文字等图元,还可以为这些图元应用填充颜色和边框颜色,甚至还可以进行低 ...
- CF 1036B Diagonal Walking v.2——思路
题目:http://codeforces.com/contest/1036/problem/B 比赛时只能想出不合法的情况还有走到终点附近的方式. 设n<m,不合法就是m<k.走到终点方式 ...
- 找工作--volatile
在Java编写的程序中,有时为了提高程序的运行效率,编译器会自动对其进行优化,把经常访问的变量缓存起来,程序在读取这个变量时有可能会直接从缓存(例如寄存器)中来读取这个值,而不会从内存中读取.这样做的 ...
- Python-实现socket简单地连续发数据
只需用while条件判断来实现 服务器端 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import socket serv ...
- C/C++的区别
C和C++的关系:就像是win98跟winXP的关系.C++是在C的基础上增加了新的理论,玩出了新的花样.所以叫C加加. C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设 ...
- CURL访问举例
<?php function request($url, $params = [], $requestMethod = 'GET', $jsonDecode = true, $headers = ...
- css+div制作圆角矩形的四种方法
圆角矩形一向是设计师最倾心的一种设计,因为他们可以让整个网页生动起来,不那么死板,所以,作为一个优秀的网页设计师,学会一种或多种编辑圆角矩形的方法是必不可少的,而且圆角矩形应用范围极广,一个网页内的所 ...