Http定义了浏览器怎样向万维网服务器请求万维网文档以及服务器怎样向浏览器传送文档。
Http本身是面向无连接的,虽然http使用了TCP连接,但是通信双方在建立http通信前不需要建立http连接,http协议也是无状态的。
为了减轻大量客户端访问因特网对链路造成的压力过大,使用代理服务器来解决这一情况。
HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是 Get,Post,Delete,Put,分别对应着查,改,删,增
Get
请求获取资源
HEAD
获取报文首部
POST
传输数据 例子:读者对新闻发表自己的评论应该通过POST实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改了。
PUT
上传文件,存在安全问题,一般不使用该方法。
Get和Post的区别
GET提交,请求的数据会附在URL之后(就是把数据放置在请求行(request line)中),以?分割URL和传输数据,多个参数用&连接;例如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。
GET的提交传输数据会受到URL长度的限制,POST不通过URL传递值,理论上数据不受限制。
POST提交:把提交的数据放置在是HTTP包的包体中。
POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这 里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,
Http的状态码:
400 客户端有语法错误
401 请求未被授权
403 服务器拒绝提供服务
404 请求的资源不存在
500 服务器发生错误
503 服务器当前无法处理客户端的请求
请求消息Request
请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.
请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
空行,请求头部后面的空行是必须的
请求数据也叫主体,可以添加任意的其他数据。
HTTP之响应消息Response
第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
第二行和第三行为消息报头,
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8
空行后面的html部分为响应正文