以Telnet的方式来学习Http协议

  一、Http协议

       Http(HyperText Transfer Protocol),叫做超文本传输协议,它属于应用层协议,是基于Tcp连接的。它是一种基于请求/响应模式的,无状态的协议。http1.0的特点:一次连接一次响应后就断开;http1.1的特点:持续连接,在一次连接中可发送多个请求,不必等待每次请求的响应是否到来。Http一般连接过程如下:

二、书写格式

    http://host[:port][abs_path]

    http:表示Http协议来定位网络资源

    host:代表合法的主机域名或IP地址(以点分十进制格式表示)

    port:代表端口号

    abs_path:指定请求资源的URI,如果URL中没有给出abs_path,那么当它作为请求URI时,必须以"/"的形式给出。通常这个工作浏览器就帮我们完成了。

    小知识点:URI(Uniform Resource Identifier,统一资源标识符),纯粹是一个符号结构,用于指定构成Web资源的字符串的各个不同部分URL是一个特殊类型的URI,     它包含了用于查找某个资源的足够信息。其他的URI,例如:mailto:xxx@123.com,则不属于URI,因为它里面不存在根据该标识符来查找的任何数据。这种URI成      为URN(通用资源名)

三、Http请求

      由三部分组成:请求行,消息报头,请求正文,请求格式为:Method Request-URI HTTP-Version CRLF 除了作为结尾的CRLF外,不允许出现单独的CR或LF字符,CRLF表示回车换行。

    请求方法有:

请求方法 说明
get 请求获取由Request-URI所标识的资源,(查询)
post 在Request-URI所标识的资源后附加新的资源,(查询+更新)
put 请求服务器存储一个资源,并用Request-URI作为其标识,(增加)
delete 请求服务器删除由Request-URI所标识的资源,(删除)
head

请求获取由Request-URI所标识的资源的响应消息报头,常用于测试

超链接的有效性,是否可以访问,以及最近是否更新等

trace 请求服务器回送受到的请求信息,主要用于测试或诊断
connect 保留将来使用
options 请求查询服务器的性能,或者查询与资源相关的选项和需求

    当我们通过浏览器地址栏中直接输入网址的方式去访问网页时,浏览器采用的就是GET方法向服务器获取资源
    Tips:在HTML中书写get和post不区分大小写,但在HTTP协议中的GET和POST只能是大写形式

四、Http响应    

     在接收和解释请求消息后,服务器会返回一个HTTP响应消息(状态行,消息报头,响应正文),状态行的书写格式:HTTP-Version Status-Code Reason-Phrase CRLF\
    Status-Code表示服务器发回的响应代码,Reason-Phrase表示状态代码的文本描述
    状态代码及说明:

状态码 说明
1xx 指示信息-表示请求已接收,继续处理
2xx 表示请求已经被成功接收,理解,接受
3xx 重定向-要完成请求必须进行更进一步的操作
4xx 客户端错误-请求有语法错误或请求无法实现
5xx 服务器端错误-服务器未能实现合法的请求

五、Http消息

     Http消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行,消息报头(可选),空行(只有CRLF),消息正文(可选)组成。对于请求消息开始行就是请求行,响应消息开始行就是响应行。

 六、用Telnet来验证http原理

     a.  用Telnet来学习Http的连接方式(Telnet和Http都是基于Tcp连接的),首先我们需要打开Telnet服务,在Win7,Win10打开Telnet:控制面板->程序->打开或关闭Windows功能->Telnet客户端

    b. 连接网址:telnet www.baidu.com 80   记住添加80端口,不然会使用Telnet默认端口去访问(Telnet默认端口号是23,Ftp默认端口号是21,浏览器默认端口号是80)

    c. 采用两种方式来输出请求内容  

HEAD /index.html HTTP/1.1
Host: www.baidu.com   

    c1. 采用不回显的方式输入请求

   输入要求:两行之间不能有空格,否则会遗失对主机的连接,输入完成后敲两次回车,第一次表示指令已输完,第二次表示执行指     令

 

 

    成功界面:

   

    c2. 采用回显的方式输入请求

        在Telnet www.baidu.com的窗口按下"Ctrl+]"组合键,在出现界面再点击"Enter"键,在出现窗口界面输下请求

   小知识点:回显就是你在键盘上按下一个“键”,如果在电脑上同时显示出你按的内容,这就是回显;如果没有显示,就不回显。

posted @ 2017-06-12 17:13  守明  阅读(940)  评论(0编辑  收藏  举报