威尼斯人apppost请求报文

2019-09-05 06:52栏目:编程学习

1.使用get方式时,url类似如下格式:

POST /02_WEB_HTTP/index.html HTTP/1.1

[html] 
index.jsp?id=100&op=bind 

Accept: application/x-ms-application, image/jpeg, application/xaml xml, image/gif, image/pjpeg, application/x-ms-xbap, */*

GET报问头如下:

Referer:

[html] 
GET /sn/index.php?sn=123&n=asa HTTP/1.1 
 Accept: */* 
 Accept-Language: zh-cn 
威尼斯人app, host: localhost 
  
 
 Content-Type: application/x-www-form-urlencoded 
 Content-Length: 12 
 Connection:close 

Accept-Language: zh-CN,en-US;q=0.7,ko-KR;q=0.3

 

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3)

2.使用post方式时,POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,可用来传送文件。

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

POST报文头如下:

Accept-Encoding: gzip, deflate

[html] 
POST /sn/index.php HTTP/1.1 
Accept: */* 
Accept-Language: zh-cn 
host: localhost 
 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 12 
Connection:close 
sn=123&n=asa 

Host: localhost:8080

在http头后边有一空行,空行后边接着发送post数据在http头后边有一空行,空行后边接着发送post数据在http头后边有一空行,空行后边接着发送post数据在http头后边有一空行,空行后边接着发送post数据。空行通知服务器以下不再有请求头。

Content-Length: 30

 

Connection: Keep-Alive

3.可以发现的一点是,无论是post还是get方式,他们所传递的数据都要进行url编码

Cache-Control: no-cache 

 

 

  1. url编码是一种浏览器用来打包表单输入的格式。

username=admin&password=123123

 浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。

 

 不管哪种情况,在服务器端的表单输入格式样子象这样:

post请求报文:

  theName=Ichabod Crane&gender=male&status=missing& ;headless=yes

    请求首行

 

        POST /02_WEB_HTTP/index.html HTTP/1.1

5.URL编码遵循下列规则:

        请求方式 请求路径 协议名/协议版本

     1.每对name/value由&;符分开;

 

     2.每对来自表单的name/value由=符分开。

    请求头

     3.如果用户没有输入值给这个name,那么这个name还是出现,只是无值。

        Accept: application/x-ms-application, image/jpeg, application/xaml xml, image/gif, image/pjpeg, application/x-ms-xbap, */*

     4.任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,

        Referer:

6.所以,当我们使用get或者post传送数据之前,我们都需要对数据进行url编码。

        Accept-Language: zh-CN,en-US;q=0.7,ko-KR;q=0.3

   urllib库提供了一个函数来实现url的编码:

        User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3)

[html] 
search=urllib.urlencode({'q':'python'}) 
输出为:

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

[html] 
'q=python'   

            指的是请求体中的内容类型:application/x-www-form-urlencoded指请求体中的内容将会使用URL编码

7.ok,现在正式开始python的get和post请求:

                username=孙悟空

[html] 
#!/usr/bin/python     
#-*-coding:utf-8-*-     
      
# 进行表单提交  小项  2008-10-09     
      
import httplib,urllib;  #加载模块     
      
#定义需要进行发送的数据     
params = urllib.urlencode({'cat_id':'6',      
                           'news_title':'标题-Test39875',      
                           'news_author':'Mobedu',      
                           'news_ahome':'来源',      
                           'tjuser':'carchanging',      
                           'news_keyword':'|',      
                           'news_content':'测试-Content',      
                           'action':'newnew',      
                           'MM_insert':'true'});      
#定义一些文件头     
headers = {"Content-Type":"application/x-www-form-urlencoded",      
           "Connection":"Keep-Alive","Referer":";      
#与网站构建一个连接     
conn = httplib.HTTPConnection("192.168.1.212");      
#开始进行数据提交   同时也可以使用get进行     
conn.request(method="POST",url="/newsadd.asp?action=newnew",body=params,headers=headers);      
#返回处理后的数据     
response = conn.getresponse();      
#判断是否提交成功     
if response.status == 302:      
    print "发布成功!^_^!";      
else:      
    print "发布失败^0^/";      
#关闭连接     
conn.close();   

                当发送中文参数时,我们需要将字符转换为二进制编码来发送

 

                    url编码指的是,将字符转换为二进制编码,然后在将二进制转换为十六进制

[html] index.jsp?id=100op=bind GET报问头如下: [html] GET /sn/index.php?sn=123n=asa HTTP/1.1 Accept: */* Accept-Language: zh-c...

                        发送请求参数时以十六进制编码的形式发送

 

        Accept-Encoding: gzip, deflate

        Host: localhost:8080

        Content-Length: 30

            请求体的长度:

 

        Connection: Keep-Alive

        Cache-Control: no-cache

            缓存的管理:no-cache不使用缓存

 

    空行

        空行的作用就是分割请求首部和请求体

 

    请求体

        username=admin&password=123123

        post请求通过请求体来发送请求参数

 

 

 

转载请注明出处!

感谢您的阅读。如果文章对您有用,那么请轻轻点个赞,以资鼓励。

 

版权声明:本文由威尼斯人app发布于编程学习,转载请注明出处:威尼斯人apppost请求报文