`
johnson.lee
  • 浏览: 51776 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

剖析HTTP协议GET/POST请求

阅读更多
WEB服务器Socket实现
public static void main(String[] args) {

	ServerSocket socket = null;
	try {
		socket = new ServerSocket(80);
	} catch (IOException e) {
		e.printStackTrace();
		System.exit(0);
	}
	while (true) {
		InputStream is = null;
		Socket s = null;
		try {
			s = socket.accept();
			is = s.getInputStream();
			int c = -1;
			while ((c = is.read()) != -1) {
				System.out.print((char) c);
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (is != null) {
					is.close();
					is = null;
				}
				if (s != null) {
					s.close();
					s = null;
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}


[list]
  • GET方式提交
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    		<title> New Document </title>
    	</head>
    
    	<body>
    		<form method="get" action="http://localhost/web/index.jsp">
    			<input type="text" name="name" value="me"/>
    			<input type="password" name="password" value="mypwd"/>
    			<input type="submit" name="submit" value="submit"/>
    		</form>
    	</body>
    </html>
    

    请求信息如下:
    GET /web/index.jsp?name=me&password=mypwd&submit=submit HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MS-RTC LM 8; InfoPath.1; .NET CLR 2.0.50727; CIBA)
    Host: localhost
    Connection: Keep-Alive
    
    
  • POST方式提交
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    		<title> New Document </title>
    	</head>
    
    	<body>
    		<form method="post" action="http://localhost/web/index.jsp">
    			<input type="text" name="name" value="me"/>
    			<input type="password" name="password" value="mypwd"/>
    			<input type="submit" name="submit" value="submit"/>
    		</form>
    	</body>
    </html>
    

    请求信息如下:
    POST /web/index.jsp HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MS-RTC LM 8; InfoPath.1; .NET CLR 2.0.50727; CIBA)
    Host: localhost
    Content-Length: 36
    Connection: Keep-Alive
    Cache-Control: no-cache
    
    name=me&password=mypwd&submit=submit
    
    
  • POST上传文件
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    		<title> New Document </title>
    	</head>
    
    	<body>
    		<form method="post" action="http://localhost/web/index.jsp" enctype="multipart/form-data">
    			<input type="text" name="name" value="me"/>
    			<input type="password" name="password" value="mypwd"/>
    			<input type="file" name="uploadfile"/>
    			<input type="submit" name="submit" value="submit"/>
    		</form>
    	</body>
    </html>
    

    请求信息如下:
    POST /web/index.jsp HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    Content-Type: multipart/form-data; boundary=---------------------------7dad71450b9e
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MS-RTC LM 8; InfoPath.1; .NET CLR 2.0.50727; CIBA)
    Host: localhost
    Content-Length: 954
    Connection: Keep-Alive
    Cache-Control: no-cache
    
    -----------------------------7dad71450b9e
    Content-Disposition: form-data; name="name"
    
    me
    -----------------------------7dad71450b9e
    Content-Disposition: form-data; name="password"
    
    mypwd
    -----------------------------7dad71450b9e
    Content-Disposition: form-data; name="uploadfile"; filename="D:\temp\zhizhu\news.sql"
    Content-Type: application/octet-stream
    
    CREATE DATABASE IF NOT EXISTS sohunews;
    USE sohunews;
    
    --
    -- Definition of table `news`
    --
    
    DROP TABLE IF EXISTS `news`;
    CREATE TABLE `news` (
      `newsid` int(11) NOT NULL auto_increment,
      `newstitle` varchar(60) NOT NULL,
      `newsauthor` varchar(20) NOT NULL,
      `newscontent` text NOT NULL,
      `newsurl` char(130) NOT NULL,
      `newsdate` varchar(24) NOT NULL,
      PRIMARY KEY  (`newsid`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
    
    -----------------------------7dad71450b9e
    Content-Disposition: form-data; name="submit"
    
    submit
    -----------------------------7dad71450b9e--
    
    

    [/list]
    1
    0
    分享到:
    评论

    相关推荐

      用于模拟GET/POST方法发送HTTP请求并取得数据

      但没办法改他的现有系统,只好写个模拟的浏览器,打算做成自动登录并自动去取信息,发布的这个还没有做信息的分析功能,不过感觉里面的HTTP协议请求和Cookie、Session的一些处理对朋友们还是有帮助的。另外,有一个...

      C++ 实现 HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)

      玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。 我这里有两种实现: 1:libcurl实现的CHttpClient类,该类实现了Htpp和Https的get post方法。 2:...

      HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)

      玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。 我这里有两种实现: 1:libcurl实现的CHttpClient类,该类实现了Htpp和Https的get post方法。 2:...

      Yii框架通过请求组件处理get,post请求的方法分析

      本文实例讲述了Yii框架通过请求组件处理get,post请求的方法。分享给大家供大家参考,具体如下: 在控制器的操作中处理get,post请求时,首先需要获得请求组件。 $request = \Yii::$app-&gt;request; 得到这个请求...

      Java面试之Get请求和Post请求

       之前一次面试时面试官问到了Get请求和Post请求的区别,对于web基础来说这个还是比较重要的,所以我打算整理一下分享给大家,以下是我个人的一些总结,如果大神有更好的理解,欢迎补充。 从三个方面来总结 Get请求...

      Go语言服务器开发实现最简单HTTP的GET与POST接口

      本文实例讲述了Go语言服务器开发实现最简单HTTP的GET与POST接口。分享给大家供大家参考。具体分析如下: Go语言提供了http包,可以很轻松的开发http接口。以下为示例代码: 代码如下:package webserver    import...

      HTTP_POST_GET.rar_Http get post_http get_http post_http post ge

      详细介绍了http协议中get请求与post请求的区别,对于协议分析及编程很有帮助

      wireshark实验三:HTTP 协议分析实验

      在这个实验中,我们研究了 HTTP 协议的多个方面,包括基本的 GET 和 POST 操作、HTTP 消息的格式等。通过使用 Wireshark 工具,我们捕获和分析了 HTTP 消息,并回答了相关的问题。 一、基本的 HTTP GET/Response ...

      vue-axios的使用及其中get与post网络请求

      本资源涉及服务器的搭建(利用node.js)与vue-axios中get与post网络请求的使用方法,同时,讲述了vue中如何实现跨域(配置转发的域),组件间通信等等,代码的分析较为详细,适合初学者。

      c# http post get

      * *描 述:实现HTTP协议中的GET、POST请求 * *使 用:HttpProc.WebClient client = new HttpProc.WebClient(); client.Encoding = System.Text.Encoding.Default;//默认编码方式,根据需要设置其他类型 client....

      nodejs使用http模块发送get与post请求的方法示例

      主要介绍了nodejs使用http模块发送get与post请求的方法,结合实例形式分析了nodejs基于http模块实现发送get与post请求具体操作技巧,需要的朋友可以参考下

      python爬虫HTTP协议剖析

      Python爬虫HTTP协议剖析是指使用Python语言编写的爬虫程序来分析和解析HTTP协议的工作机制。HTTP协议是目前最流行的网络协议之一,广泛应用于网页浏览、网络爬虫、API接口等领域。 HTTP协议简介 HTTP(Hyper Text...

      thinkPHP5.1框架路由::get、post请求简单用法示例

      主要介绍了thinkPHP5.1框架路由::get、post请求简单用法,结合实例形式分析了thinkPHP5.1路由get、post请求基本使用方法,需要的朋友可以参考下

      jdbc链接及get,post网络请求代码

      java jdbc数据库连接,get,post网络请求代码分析,构造函数获得数据库用户名和密码构造函数获得数据库用户名和密码构造函数获得数据库用户名和密码构造函数获得数据库用户名和密码构造函数获得数据库用户名和密码...

      Python大数据之网络爬虫的post请求、get请求区别实例分析

      主要介绍了Python大数据之网络爬虫的post请求、get请求区别,结合具体实例形式分析了Python网页爬虫post请求与get请求相关使用技巧,需要的朋友可以参考下

      Go语言Web编程实现Get和Post请求发送与解析的方法详解

      主要介绍了Go语言Web编程实现Get和Post请求发送与解析的方法,结合实例形式分析了Go语言客户端、服务器端结合实现web数据get、post发送与接收数据的相关操作技巧,需要的朋友可以参考下

      PHP使用stream_context_create()模拟POST/GET请求的方法

      主要介绍了PHP使用stream_context_create()模拟POST/GET请求的方法,结合实例形式较为详细的分析了stream_context_create模拟POST/GET请求的原理,使用方法与相关注意事项,需要的朋友可以参考下

      WebSpy: explore and test website-crx插件

      监视HTTP GET / POST请求。 请求和响应主体的XML / JSON Viewer / Formatter。 REST客户端:发送GET / POST / PATCH请求。 允许查看任何网站上的所有请求,创建和测试自定义HTTP请求。 您可以以XML / JSON / HTML / ...

      网络间谍:探索和测试网站。「WebSpy: explore and test website」-crx插件

      监控HTTP GET / POST请求。请求和响应主体的XML/JSON查看器/格式化程序。REST客户端:发送GET/POST/PATCH请求。 允许查看任何网站上的所有请求,创建和测试自定义HTTP请求。 您可以以XML / JSON / HTML / TEXT格式...

      Android发送GET与POST请求的DEMO详解

      本篇文章是对Android发送GET与POST请求的DEMO进行了详细的分析介绍,需要的朋友参考下

    Global site tag (gtag.js) - Google Analytics