发表于: 2017-06-19 22:24:12
1 875
今天完成的事情:
学习网络相关知识。
理解angularjs的运作模式。
这两天由于做小课堂,看了很多篇网络相关的博客,逐渐理解了网络的构造和运行步骤,对之前不太理解的知识也更清晰了。
1,http请求的get与post模式:
get是http原始的方法,作用是请求后台数据。
post是http1.0所添加的方法,意思是将表单数据发送给后台。
但实际上,两者都会请求和发送数据,作用上几乎没有区别。
当get向后台发送数据时,get方法是将数据附在请求头的url地址之后,如下的一个get请求:
GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint,
application/msword, application/x-silverlight, application/x-shockwave-flash, */*
Referer: <a href="http://www.google.cn/">http://www.google.cn/</a>
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; TheWorld)
Host: <a href="http://www.google.cn">www.google.cn</a>
Connection: Keep-Alive
Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g;
NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-
FxlRugatx63JLv7CWMD6UB_O_r
当post向后台发送数据时,post数据作为请求体加入请求包传送:
POST /search HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint,
application/msword, application/x-silverlight, application/x-shockwave-flash, */*
Referer: <a href="http://www.google.cn/">http://www.google.cn/</a>
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; TheWorld)
Host: <a href="http://www.google.cn">www.google.cn</a>
Connection: Keep-Alive
Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g;
NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-
FxlRugatx63JLv7CWMD6UB_O_r
hl=zh-CN&source=hp&q=domety
post的优点在于不会直接在链接中暴露数据。
还有其它的请求方法如head,head请求返回结果只有响应头,很方便我们查询连接状态。
2,代理,代理即是我们通过第三方访问原始服务器的方法。
代理分为正向代理和反向代理。
正向代理即客户端通过第三方服务器访问原始服务器,这种方法可用于翻墙。
反向代理是指当我们使用第三方服务器访问原始服务器时,可以直接在第三方服务器中请求并不存在于第三方服务器的原始服务器数据,第三方服务器就表现得好像原始服务器一样。主要是通过在第三方服务器中监听url地址,然后根据服务器软件的匹配规则,将部分url替换为原始服务器来实现的。这种做法主要用于跨域。
3,http请求中的Content-Type。
Content-Type规定了发送给后台的数据使用什么编码方式。
Content-Type: application/x-www-form-urlencoded,这是form表单默认的编码方式,数据会被编码成如下所示:
title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3
Content-Type: application/json,消息体以JSON格式编码,发送的格式如下:
{"title":"test","sub":[1,2,3]}
明天计划的事情:
继续写搜索功能。
遇到的问题:
任务中说所有的Post操作都要以Application/json 的方式提交,但我这样做了请求不到正确的数据:
data: {name: $scope.name, pwd: $scope.pwd},
headers: {'Content-Type':'application/json'}
收获:
如上
评论