1、UDP,TCP,HTTP之间的关系
tcp/ip是个协议组,它可以分为4个层次,即网路接口层,网络层,传输层,以及应用层,
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层有TCP,UDP协议
而在应用层有HTTP,FTP,DNS等协议
因此HTTP本身就是一个协议,是从WEB服务器端传输超文本,到本地浏览器的一个传输协议
2、Socked协议
是为实现以上各个协议而建立的一个通信管道,实际上就是代表了客户端与服务器端的一个通信进程,双方都是通过指定的socked进行通信,
客户端与服务器端都是通过指定的协议去进行通信的。
而socket只能是一种连接模式,它也是完全基于TCP,以及UDP这两个在传输层最基本的协议的。实际上有很多应用层上的协议是完全基于这两个
协议的,比如,HTTP协议就是基于TCP协议(TCP协议是可靠的,在发送和接收时都要计算校验和,在传输字节流时是基于三次握手的)的,
而socked则可以创建TCP或则UDP的连接,这就说明Socked可以创建任意在应用层上的连接,因为在应用层上的协议完全就是基于UDP与TCP的。
3、HTTP 超文本传输协议
HTTP是一个在应用层上的协议,浏览器与服务器端间就会通过HTTP协议在互联网上进行数据的传输以及接受,
HTTP协议是一个基于请求/响应模型的、无状态的传输协议。就是Request/Response模型。
来看一个URL的例子
http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff
Schema( 指定低层使用的协议(例如:http, https, ftp)): http
host ( HTTP服务器的IP地址或者域名): www.mywebsite.com
path (访问资源的路径): /sj/test/test.aspx
Query String ( 发送给http服务器的数据): name=sviergn&x=true
Anchor ( 锚): stuff
还有个port# : HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/
4,HTTP协议之GET,POST
HTTP协议定义了很多的客户端与服务器端进行交互的方法,最基本的有4中,get,post,put,delete,
如果说一个URL地址代表着一个URL地址,那么HTTP中的这四中方法,分别对应着对这4种资源的查,改,增,删操作,
最常见得就是GET,与POST方方法了,GET一般用于获取/查询资源,POST一般用于更新资源,
GET与POST之间的区别如下:
(1)1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
(2)GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
(3)GET方式需要方法Request.QueryString来取得变量的值,这是通过地址栏来传值 ,而POSt方式通过Request.Form来获取变量的值,这是通过表单的提交来传值。
(4)GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.