HTTP协议知识要点

    作者:课课家教育更新于: 2017-05-03 11:52:07

    大神带你学编程,欢迎选课

      超文本传输协议(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人TedNelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。TedNelson组织协调万维网协会(WorldWideWebConsortium)和互联网工程工作小组(InternetEngineeringTaskForce)共同合作研究,最终发布了一系列的RFC,其中著名的RFC2616定义了HTTP1.1。

    基础知识

      协议就是互联网中的设备(交换机,路由器,防火墙)等,进行相互通讯的规则。规则规定了发送的数据格式,以及每格式所代表的意义。

      HyperTextTransformationProtocol超文件传输协议,主要用于web

      HTTP就互联网中客户端浏览器与web服务器进行相互通讯规则。

      http协议的特点:

      1、支持客户端与服务器模式。

      2、简单快捷,客户端向服务器端发起请求时,只需要指定请求的方式与所请的文件即可。

      3、方便灵活,服务器向客户端返回数据时,可以使用content-type来设置,即将传递数据的格式。

      4、无连接,当服务器处理完一个请求后,就会断开连接。

      5、无状态,服务器无法识别,当前的请求与上一次的请求是否同自同一个客户端。所以产生了cookie会话技术,来保存客户端的状态。

      6、web服务器是被动的,客户端是主动的。

      协议功能

      HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

      HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

      http协议的组成

      http协议是客户端浏览器与web服务器进行相互通信的规则。http协议彩的是一种请求与响应的模式。首先由客户端发请起请求,服务器端处理完成请求后进行响应。

      所以http协议由请求与响应组成:

      HTTP之URL

      URL(UniformResourceLoacation统一资源定位)是URI(UniformResourceIdentifier统一资源标识)的子集

      URL的形式如:

      http://host【:port】/【path】

      http表示http协议,指示浏览器通过网络找到相应的主机

      port表示端口号,默认是80,可以不写

      path表示所请求的文件的路径,如果省略,必须以'/'结束,如果不写浏览会自动添加'/'

      HTTP之请求

    HTTP协议知识要点_超文件传输协议_互联网技术_网络工程师_课课家教育

      请求头:

      请求方式包含get或post

      URI请求的文件(包含路径与文件名)

      /20151219/code/01demo_http.php

      协议及版本号http/1.1

      协议报头

      协议头分三种:请求报头、响应报头、普通报头(即不属于请求报头也不属于响应报头)

      协议报头的格式:不区分大小写

      报头名+":"+空格+值例如host:localhost

      请求报头:

      host:表示所请求的主机localhost

      user-agent:会将浏览器的相关信息传递给服务器

      accept:接收的数据的类型,

      text/html表示,text文本数据html:超文本application表示二进制数据

      accept-language:表示所接收的语言zh-cn表示简体中文zh表示中文

      accept-encoding:表示所接收的压缩格式

      connection:表示保持连接(请求发出之后,在没有得到响应时,告诉服务器不要关闭此连接)

      last-modified-since:浏览器会缓存之前访问过的网站的资源文件,通过此报头来询问服务器此文件是否被修改过。

      referer:表示本次请求来自哪个url。

      content-length:表示请求的数据的长度,只有post请求方式才有

      authorization:表示认证

      空行

      就表示请求的报头结束,其后是请求的数据,只有post方式空行才有数据。

      HTTP之响应

    FTTP之响应   

      状态行

      协议及版本号http/1.1

      状态码及状态信息200ok

      1xx表示接收正在处理

      2xx处理的结果

      200处理成功

      3xx需重定向或读取缓存等

      304没有修改,读取自己的缓存

      4xx客户端的错误

      404找不到请求的文件

      5xx服务器的错误

      响应报头

      Date时间

      Server服务器环境

      Content-length返回的数据的长度

      Content-type返回的数据的类型

      Last-modified最后修改时间

      Content-language:响应的数据的语言

      Content-enconding:响应的数据的压缩格式

      content-charset:响应的数据的字段编码

      空行

      响应报头结束,其后的是数据

      Telnet模拟get请求

      http协议是一种客户端服务器模式,所以只能够访问web服务器的软件都是http协议的客户端。

      telnet的运行是cmd窗口,但是win7以上默认没有开启telnet软件。

      开启:

      控制面板==>程序==>启用或关闭window功能

           http协议是一种客户端服务器模式,所以只能够访问web服务器的软件都是http协议的客户端。

      第1步:连接服务器

      telnet主机名端口号

    http协议是一种客户端服务器模式,所以只能够访问web服务器的软件都是http协议的客户端。

      回车

      默认telnet没有开启回显功能(显示用户输入的内容)

      开启回显

      ctrl+]

    默认telnet没有开启回显功能(显示用户输入的内容)

      再回车

      第2步:构造http协议

      构造http请求头

      get/URIhttp/1.1

      示例:

    默认telnet没有开启回显功能(显示用户输入的内容)

      构造http报头

    fsockopen(主机名,端口号,错误代码,错误信息,超时时间);    此函数会返回一个,资源类型的,指向web服务器的连接。

      构造http空行,并发送请求头

      回车

      示例:

    fsockopen(主机名,端口号,错误代码,错误信息,超时时间);    此函数会返回一个,资源类型的,指向web服务器的连接。

      PHP模拟get请求

      第1步:连接web服务器

      fsockopen(主机名,端口号,错误代码,错误信息,超时时间);

      此函数会返回一个,资源类型的,指向web服务器的连接。

    fsockopen(主机名,端口号,错误代码,错误信息,超时时间);    此函数会返回一个,资源类型的,指向web服务器的连接。

      第2步:构造请求头

    fsockopen(主机名,端口号,错误代码,错误信息,超时时间);    此函数会返回一个,资源类型的,指向web服务器的连接。

      第3步:发送请求头

    在使用Post方式提交数据时,在http协议中会以下两请求报头    content-type:application/x-www-form-urlencoded

      第4步:接收数据

    在使用Post方式提交数据时,在http协议中会以下两请求报头    content-type:application/x-www-form-urlencoded

      完整示例:

    在使用Post方式提交数据时,在http协议中会以下两请求报头    content-type:application/x-www-form-urlencoded

      PHP模拟POST请求

      在使用Post方式提交数据时,在http协议中会以下两请求报头

      content-type:application/x-www-form-urlencoded

      content-length:长度

      第1步:

    PHP模拟HTTP协议响应   

      第2步:

      header();用于向http协议的响应头部写信息

      第3步:

    PHP模拟HTTP协议响应    header();用于向http协议的响应头部写信息

      第4步:

    PHP模拟HTTP协议响应    header();用于向http协议的响应头部写信息

      PHP模拟HTTP协议响应

      header();用于向http协议的响应头部写信息

      刷新并跳转:

      header("refresh:秒数;url=网址");

      示例:

    PHP模拟HTTP协议响应    header();用于向http协议的响应头部写信息    刷新并跳转:

      header("location:url");

      图片显示:

    PHP模拟HTTP协议响应    header();用于向http协议的响应头部写信息    刷新并跳转:

      下载:

      //告诉浏览器以下的数据不需显示

      header('content-type:application/octet-stream');

      //告诉浏览器以下的数据作为附件下载

      header('content-disposition:attachment;filename=horse.jpg');

      发送数据

      echofile_get_contents('文件名');

      示例:

    PHP模拟HTTP协议响应    header();用于向http协议的响应头部写信息    刷新并跳转:

      总结:可能你看完这篇文章还有一点不懂,由于知识点过多一下接受不了,你可以在看一遍,如果想全方面的了解,可以登陆课课家教育平台,这里有专业的视频讲解哦!

课课家教育

未登录

1