详细解读HTTP

来源:互联网 发布:意大利黑手党知乎 编辑:程序博客网 时间:2024/06/06 00:12
说到HTTP就不得不先解释两个名词,URL、URI。URL:统一资源定位符、URI:统一资源标识符。所以URL可以算的上一个特殊的URI,其说明了如何定位资源,因为其指明了定位信息,所以必须是绝对的。想理解HTTP协议就必须先理解所发送的报文的格式与内容,一般来说报文的类型如下
报文类型
URI
协议号可选内容

请求首部:Host/Connection/Content-type/Content-length

内容

相应报文的格式如下

状态码
原因短语协议版本可选内容

响应首部Date/Content-type/Content-lentgth

内容

明确报文的结构后,就需要知道如何发送HTTP,HTTP的发送方式有两种,1是GET,2是POST。
用GET方法来请求访问URI所指定的资源,不会对服务器上的内容产生改变,而且GET所请求需要的参数都放在URL中,可以直接在URL中看见,POST方法是将内容放在报文内容中,报文内容的限制就是它大小的限制。总体来说GET用于获取某个内容,而POST用于提交用户想要的数据的请求。
HTTP是一种无状态协议,无论它和服务器连接多少次,每一次发送都是一次新的开始,那么需要用户登录之后才可以的请求岂不是每次操作都要登录一次,这个问题我们可以通过Cookie来解决,Cookie可以保存用户的状态,其根据服务器发送的响应报文内的一个叫Set-Cookie的首部字段,通知客户端保存信息在自己的PC上,当一次新的请求发送出去后,Cookie会被添加到请求报文中发送出去。这就是问什么在选择自动登录后,再浏览网页用户就自动登录成功的原因,PC端将用户的账号密码等信息,放入报文后,服务器认证后,产生了一个名为SessionID,加入到Set-Cookie中,返回给PC,存入Cookie,下次用户请求是,浏览器自动发送了存有账号密码信息的Cookie。
HTTP在资源利用方面的一大特点就是持久链接,若任意一端没有明确提出断开链接则保持链接的状态,并且其管线化可以同时发送多个请求,不需要等待一个响应后再发下一个。
浏览网页的时候是不是经常会出现404 Not Found,这个时候就意味着你所搜索的资源在服务器上没有被找到,这句话不是别的,正是HTTP的状态码。
HTTP状态码分为5类,分别是1XX、2XX、3XX、4XX、5XX。它们有不同的代表含义。
1XX 接收信息正在处理
2XX 正常处理完毕 200 OK 请求成功
3XX 附加操作 301永久重定向(多个域名都希望可以让他们访问同一个网站,那就只能将其中一个做为主域名,剩下的其他域名做301永久重定向到这个主域名,只有这样才可以让多个域名都访问一个站点)、302临时重定向
4XX 无法处理 400语法错误、401未认证、403禁止访问、404资源未找到
5XX 请求出错 500服务器故障、503服务器繁忙
0 0
原创粉丝点击