当前位置: 首页 > news >正文

网站建设及安全管理企业自助建站系统怎么建

网站建设及安全管理,企业自助建站系统怎么建,wordpress PHP cpanel,wordpress自定义广告引言最近有朋友问如何用winform模拟post请求#xff0c;然后登录网站#xff0c;稍微想了一下#xff0c;大致就是对http报文的相关信息的封装#xff0c;然后请求网站登录地址的样子。发现自己的博客中对这部分只是也没总结#xff0c;就借着这股风#xff0c;总结一下h… 引言最近有朋友问如何用winform模拟post请求然后登录网站稍微想了一下大致就是对http报文的相关信息的封装然后请求网站登录地址的样子。发现自己的博客中对这部分只是也没总结就借着这股风总结一下http报文的相关知识吧。HTTP定义超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则通过因特网传送万维网文档的数据传送协议。 这里对http的具体内容就不再介绍了主要分析http报文信息。http报文分为请求报文和响应报文。HTTP请求报文一个Http请求报文由请求行request line、请求头部header、空行和请求数据4个部分组成请求报文个格式如下Post请求弄一个简单的登录页面使用ajax发送post请求在IE下浏览F12分析一下它的请求报文    Accept浏览器可接受的MIME类型。    Accept-Charset浏览器可接受的字符集。    Accept-Encoding浏览器能够进行解码的数据编码方式比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。    Accept-Language浏览器所希望的语言种类当服务器能够提供一种以上的语言版本时要用到。    Authorization授权信息通常出现在对服务器发送的WWW - Authenticate头的应答中。    Connection表示是否需要持久连接。如果Servlet看到这里的值为“Keep - Alive”或者看到请求使用的是HTTP 1.1HTTP 1.1默认进行持久连接它就可以利用持久连接的优点当页面包含多个元素时例如Applet图片显著地减少下载所需要的时间。要实现这一点Servlet需要在应答中发送一个  Content-Length头最简单的实现方法是先把内容写入ByteArrayOutputStream然后在正式写出内容之前计算它的大小。    Content-Length表示请求消息正文的长度。    Cookie这是最重要的请求头信息之一。    From请求发送者的email地址由一些特殊的Web客户程序使用浏览器不会用到它。    Host初始URL中的主机和端口。    If-Modified-Since只有当所请求的内容在指定的日期之后又经过修改才返回它否则返回304“Not Modified”应答。    Pragma指定“no-cache”值表示服务器必须返回一个刷新后的文档即使它是代理服务器而且已经有了页面的本地拷贝。    Referer包含一个URL用户从该URL代表的页面出发访问当前请求的页面。    User-Agent浏览器类型如果Servlet返回的内容与浏览器类型有关则该值非常有用。    UA-PixelsUA-ColorUA-OSUA-CPU由某些版本的IE浏览器所发送的非标准的请求头表示屏幕大小、颜色深度、操作系统和CPU类型。请求正文从这里可以发现请求正文就是我们要向服务器post提交的数据。Get请求将ajax的请求方式换成GET,那么get方式请求报文是怎样的呢从上图可以看出post和get请求报文的区别post提交的数据是在请求正文中而get提交的数据是在url中。Http响应报文从上图可以看出响应报文和请求报文非常相似包括状态行、消息报文、响应正文。在响应报文中第一行中用状态信息代替了请求信息状态行status通过提供一个状态吗来说明所请求的资源情况。状态行的格式为HTTP-Version Status-Code Reason-Phrase CRLF其中HTTP-Version表示服务器HTTP协议的版本Status-Code表示服务器发回的响应状态码Reason-Phrase表示状态码的文本描述。状态码由三位数字组成第一个数字定义了响应的类别且有5种可能取值1xx指示信息——表示请求已接收继续处理。2xx成功——表示请求已被成功接收、理解、接受。比如2003xx重定向——要完成请求必须进行更进一步的操作。4xx客户端错误——请求有语法错误或请求无法实现。5xx服务端错误——服务器未能实现合法的请求。常见的状态码200 OK客户端请求成功。400 Bad Request客户端请求有语法错误不能被服务器所理解。401 Unauthorized请求未经授权这个状态代码必须和WWW-Authenticate报头域一起使用。403 Forbidden服务器收到请求但是拒绝提供服务。404 Not Found请求资源不存在。500 Internal Server Error服务器发生不可预期的错误。503 Server Unavailable服务器当前不能处理客户端的请求一段时间后可能回复正常。 GET和Post的区别GET方式请求的数据会在URL之后就是将数据放置在http请求request-line中以问号分割URL和传输数据多个参数使用连接如果数据是英文字母/数字原样发送如果是空格转换为如果是中文或其他字符则直接将字符串用Base64加密在url中最常见的%E4%BD%A0%E5%A5%BD这种东东%XX中的XX为该符号以16进制表示的ASCII。Post方式把提交的数据防止在http的包体request-body中。上文请求正文中的数据就是实际传输的数据。因此get提交的数据会在地址栏中显示出来而post不会。GET:不同浏览器和服务器对URL长度有限制。例如IE对url的限制是2083字节。其他浏览器如Netscape、FireFox等理论上没有长度限制其限制取决于操作系统的支持。 因此对于get提交时传输数据就会收到url长度限制。POST由于不是通过url传值理论上是不受限的。但实际各个web服务器会规定对post提交数据大小进行限制。Apache、iis6都有各自的配置。以上参考文章http://www.cnblogs.com/biyeymyhjob/archive/2012/07/28/2612910.htmlget方式和post方式比较在安全性上较低所以比较隐私性的东东一般采用post方式提交。谁也不愿意将自己用户名和密码在url中显示出来吧 winform登录模拟post方式登录上面参考网络资源对http请求与响应报文又学习了一下现在模拟post方式登录。get方式大致相似不再赘述。post类1 using System;2 using System.Collections.Generic;3 using System.IO;4 using System.IO.Compression;5 using System.Linq;6 using System.Net;7 using System.Text;8 using System.Threading.Tasks;9 10 namespace Wolfy.LoginTest 11 { 12 public class Post 13 { 14 /// summary 15 /// 获得post请求后响应的数据 16 /// /summary 17 /// param namepostUrl请求地址/param 18 /// param namereferUrl请求引用地址/param 19 /// param namedata请求带的数据/param 20 /// returns响应内容/returns 21 public string PostLogin(string postUrl, string referUrl, string data) 22 { 23 string result ; 24 try 25 { 26 //命名空间System.Net下的HttpWebRequest类 27 HttpWebRequest request (HttpWebRequest)WebRequest.Create(postUrl); 28 //参照浏览器的请求报文 封装需要的参数 这里参照ie9 29 //浏览器可接受的MIME类型 30 request.Accept text/plain, */*; q0.01; 31 //包含一个URL用户从该URL代表的页面出发访问当前请求的页面 32 request.Referer referUrl; 33 //浏览器类型如果Servlet返回的内容与浏览器类型有关则该值非常有用 34 request.UserAgent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E); 35 request.ContentType application/x-www-form-urlencoded; charsetUTF-8; 36 //请求方式 37 request.Method POST; 38 //是否保持常连接 39 request.KeepAlive false; 40 request.Headers.Add(Accept-Encoding, gzip, deflate); 41 //表示请求消息正文的长度 42 request.ContentLength data.Length; 43 44 Stream postStream request.GetRequestStream(); 45 byte[] postData Encoding.UTF8.GetBytes(data); 46 //将传输的数据请求正文写入请求流 47 postStream.Write(postData, 0, postData.Length); 48 postStream.Dispose(); 49 //响应 50 HttpWebResponse response (HttpWebResponse)request.GetResponse(); 51 //判断响应的信息是否为压缩信息 若为压缩信息解压后返回 52 if (response.ContentEncoding gzip) 53 { 54 MemoryStream ms new MemoryStream(); 55 GZipStream zip new GZipStream(response.GetResponseStream(), CompressionMode.Decompress); 56 byte[] buffer new byte[1024]; 57 int l zip.Read(buffer, 0, buffer.Length); 58 while (l 0) 59 { 60 ms.Write(buffer, 0, l); 61 l zip.Read(buffer, 0, buffer.Length); 62 } 63 ms.Dispose(); 64 zip.Dispose(); 65 result Encoding.UTF8.GetString(ms.ToArray()); 66 } 67 return result; 68 } 69 catch (Exception) 70 { 71 72 throw; 73 } 74 } 75 } 76 } 请求中相关属性的值你可以在浏览器F12中将对应的值复制粘贴就可以这东西不需要记。这里没有考虑cookie的验证码的情况。测试结果根据返回值是1成功2失败
http://www.yutouwan.com/news/25680/

相关文章:

  • 怎么弄自己的网站卖东西信誉好的丹阳网站建设
  • 网页设计需求分析搜狗seo快速排名公司
  • 教育类网站模板最新软件开发国家标准
  • 武昌做网站多少钱asp网站后台制作
  • 用户上传网站用什么做做企业网站收费价格
  • 广州高端品牌网站建设后台管理便捷石家庄简单的网页制作
  • 家具展示网站源码附近有木有做网站
  • 网站如何做付费wordpress download monitor
  • 张家界网站建设要求网站维护是怎么回事
  • 做软件下载网站有哪些网站建设 岗位
  • 地方网站做哪些内容投诉网站建设
  • 做印刷品的素材网站安阳如何优化网站
  • 安徽整站优化装修公司报价
  • 平顶山河南网站建设wordpress 网校插件
  • 张家界城乡建设网站广州市黄埔区建设局网站
  • 衡阳市建设局网站淄博网络宣传
  • 上海网站建设 普送vi设计公司排行榜
  • 阳逻开发区网站建设中企动力可以在线做c语言的网站
  • 什么是理财北京网站建设公司邯郸市人社局
  • 外贸seo网站建设共享办公都有哪些公司
  • 长春专业企业网站建设工作室网站代运营公司有哪些
  • 2015百度竞价单页面网站模板源码设计室内设计联盟网页版
  • 免费ps模板下载网站建立网站需要注意事项
  • 深圳网站页面设计公司网络服务遇到问题请检查网络状况或稍后再试吧
  • 一_建设网站前的市场分析网页制作考试题及答案
  • 正规网站建设平台做网站赚钱么
  • 门户网站开发过程视频淘宝客cms建站教程
  • h5个人网站模板源码西安建设工程信息网人员查询
  • 网站制作建设公司房地产新闻app哪个好
  • 制作一个网站需要多久网站如何提交给百度