简单的理解HTTP协议

HTTP协议的基本概念

HTTP(Hypertext tansfer protocol)超文本传输协议,是目前互联网应用最广泛的一种协议。

HTTP是通用的,无状态的,面向对象的协议。到目前为止,HTTP总共有三个版本分别是HTTP1.0,HTTP1.1和HTTP-NG。

HTTP的消息分为请求消息和响应消息两种。

理解HTTP协议的URL

URL统一资源定位符,用来表示万维网上的各种资源,如文档,视屏,图片,声音等。URL由三部分组成:协议类型,主机名和路径及文件名。

HTTP的URL的一般格式为:http://host:[port]/path/filename(在不同的系统中URL的大小写需要特别注意,在windows系统是不区分大小的,而在Unix或者linux系统中则区分大小写的)

HTTP协议请求头

HTTP协议的请求主要有三部分组成:请求行,请求报头,请求体。其中在某些请求中请求报头和请求体是可选额,请求报头和请求体之间需要用空格隔开。

1.请求行,由三部分组成:请求方法,请求资源,HTTP协议版本。其格式为 Method Request-URI HTTP-Version CRLF

请求方法

  • GET:请求读取Request-URI所标识的资源。此方法的URL参数传递的数量是有限的,一般在1KB以下。
  • POST:请求服务器在接受在Request-URI所标识的资源后附加数据。传递的参数数量比GET大的多,一般没有限制。

2.请求报头,包含客户端传递请求的附加信息和客户端多接受的信息类型。常见的请求报头有Accept和User-Agent。

例如:Accpet:text/html     Accept:image/gif

  • Accept:用于指定客户端所支持的信息类型
  • Accept-Charset:用于指定客户端所接受的字符集
  • Accept-Encoding:用于指定客户端所接受的字符编码
  • Accept-Languagu:用于指定客户端可接受的自然语言,如果没有设置则默认表示客户端可以接受任何语言。
  • Host:用于指定所请求的资源的主机名和端口号,缺省端口号默认为80
  • Connection:指定请求结束后是否保持连接  keep-alive保持连接  close关闭连接

HTTP协议响应

在接受到一个请求后,服务器会返回一个HTTP响应。HTTP响应由三部分组成,即状态行,响应报头,响应正文。

1.状态行:由HTTP版本,状态码和状态码的简单短语三部分构成。即 HTTP-Version Status-Code Reason-Phrase CRLF

状态码由三位数字组成,共有5大类,大类的取值分别是1-5

  • 1XX:指示成功,如请求收到了或正在处理
  • 2XX:成功
  • 3XX:重定向
  • 4XX:客户端错误,如请求中包含语法错误或不能正常完成的
  • 5XX:服务器错误,如服务器失效为无法完成请求

典型的状态码解析如下

  • 200:表示请求成功,成功返回了请求的资源
  • 302/307:表示重定向,此时请求的文档已经面临移动到其他位置,该文档新的URL将在Location响应报头中给出
  • 401:表示浏览器访问的是一个受到保护的页面
  • 403:表示服务器受到请求,但是拒绝服务
  • 404:表示找不到资源,即服务器上不存在浏览器请求的资源
  • 500:表示服务器内部错误,即服务器端的CGI,ASP,JSP等程序发生了错误
  • 503:表示服务器暂时性超载,不能处理当前请求

例如:200 OK 成功

304 Not Modified 未修改

400 Bad Request 错误请求

404 Not Found 未找到

2.响应报头,响应报头是服务器不能放在状态行中的附加响应消息,以及服务器的信息和对Request-URI所标识的资源进行下一步的 访问信息。

常见的响应报头有如下:

  • Allow:支出服务器多支持的请求方法,如GET,POST等方法
  • Content-Encoding:指定文档的编码方法
  • Content-Length:指定响应中数据的字节长度
  • Content-Type:指定回送数据的MIME类型
  • Date:指定发送HTTP消息的日期
  • Last-Modified:指定返回数据的最后修改时间
  • Location:重定向请求到一个新的URI地址
  • Refresh:指定浏览器的定时刷新时间
  • Expires:指定浏览器缓存数据的时间
  • Server:指定服务器名称,包含了处理请求的服务器使用的软件产品信息,与User-Agent请求报头想对应

3.响应正文,响应正文是服务器所返回的资源内容,如HTML页面。响应报头和响应正文之间必须使用空行来分割。

一个典型的HTTP响应实例如下

HTTP/1.1 200 OK
Connection:close
Date: Wed, 19 Nov 2017 20:20:20 GMT
Server: Apache/2.0.54
Content-Length:1024
Content-Type:text/html
//空行----分割空行
<html>
//数据
</html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值