[ASP.NET] HTTP协议
前言:完成了牛腩也学习了一些ASP.NET的知识,发现总结真的非常重要。做好总结不仅可以记录自己的成长,还可以在自己以后需要的时候翻看自己的博客。下面和大家分享一下ASP.NET的一些入门小知识。
(一)前端和后端的区别
在敲机房收费系统的时候,就经常听师哥师姐说前端后端什么的,当时自己还不清楚这两者的区别是什么。在验收牛腩的时候,经过师傅的点拨,回想起视频中讲解的内容,对于这两者有了一些了解。
所谓的前端其实就是【网页】,和用户直接打交道的【用户界面】,如果想做前端的开发就需要了解的内容比较广泛,比如html、css、JavaScript、Photoshop等等。掌握这些内容,就可以在项目实践中,去提升自己的前端技能了。
而后端自然就是和前端相对应的了,比如在VS里就是指我们用C#编写的代码,这些设计到了【数据库】,后台的编写更需要掌握比较深厚的知识,而不仅仅是广泛了。同时也要形成自己的代码库,提高编写效率。
当然前端和后端的区别还有很多,在这里博主只是分享了一下自己的理解,欢迎大家评论补充。
(二)HTTP协议的几个概念
1.连接(Connection)
浏览器和服务器之间传输数据的通道。 一般请求完毕就关闭,http不保持连接。不保持连接会降低处理速度(因为建立连接速度很慢),保持连接的话就会降低服务器的处理的客户端请求数,而不保持连接服务器可以处理更多的请求。
2.请求(Request)
浏览器向服务器发送的“我要***”的消息,包含请求的类型、请求的数据、浏览器的信息(语言、浏览器版本等)。
3.响应(Response)
服务器对浏览器请求的返回的数据,包含是否成功、状态码等。
(三)表单提交方式post 和get 的区别
1.官方解释
(1)get和post的区别:get是通过url传递表单值,post通过url看不到表单域的值;get传递的数据量是有限的,如果要传递大数据量不能用get,比如type=“file”上传文章、type=“password”传递密码或者发表大段文章,post则没有这个限制;post会有浏览器提示重新提交表单的问题,get则没有(加分的回答)。对于Post的表单重新敲地址栏再刷新就不会提示重新提交了,因为重新敲地址就没有偷偷提交的数据了。Post方式的正确的地址很难直接发给别人。
(2)Get方式URL数据格式。服务端文件名后跟着“?”,由于客户端可能向服务器端提交多个键值对,键值对之间用“&”进行分割,如果URL中有汉字、特殊符号等,则需要对URL进行编码。
表单域只有设定了name的才会被提交给服务器(用get方式看的清楚)。如果给submit按钮设定name,那么按钮的value也会被提交给服务器
2.自己理解
(1)post 和get 都可以传输数据,那么到底用哪个呢?作为一个英语专业的人来说,我的第一选择是用post,因为post强调“发送”,而get强调“获得”,post比get更能表达传输的含义,而且在英语中,做传输来讲post 更常用。
(2)其实到底用哪个是要根据不同的应用场景来决定的,在这里既然提到的是计算机语言,当然要从计算机的角度来了分析了。
(3)因为使用post可以传输更大的文件,同时post传输也有一定加密的功能,传输数据不会被用户看到一些例如id之列的代码,更加安全。【因此post适用于发送账号、密码之列的传输。】
而get也有自己的适用场景,虽然没有post安全,但是get的传输效率却比post快,在用户分享网页的时候,就不用特别注意保密性了,毕竟网站是公开的。【因此get适用于浏览、分享网站等】
(四)ASP.NET里的常用文件
(五)Http协议
http是无状态的,不会记得“上个请求***”,所以哪怕是同一个页面中的js、css、jpg也都要重复的提交Accept-Language、Accept-Encoding、Cookie等。
网页中如果有图片、css、js等外部文件的话图片、css、js都在单独的请求中,也就是并不是页面的所有内容都在一个请求中完成,而是每个资源一个请求。
一般情况下,只有浏览器请求服务器端,服务器端才有给浏览器响应数据,服务器不会主动向浏览器推送数据,这样是安全考虑,也是提高服务器的性能考虑。如果要服务器向浏览器推送数据,则需要使用ServerPush(ajax隔一段时间到服务器请求最新的数据)等额外的技术。
Http是“请求—响应”的工作方式
总结:学习越多越要总结积累,毕竟总结不仅仅是回顾知识,更是方便以后自己查看,方便需要的人来阅读。