zoukankan      html  css  js  c++  java
  • 关于http协议的几点认识

        关于通信,我们最熟悉的莫过于手机和电话通信。通信有一个最基本的东西,就是必须事先约定好通信方式,比如拨号,电话铃响,拿起电话和挂掉电话等等,这些其实就是通信协议,只要双方按照协议规定的就可以进行通信(当然这里不考虑其它基础设备)。而在web应用上,浏览器和服务器之间就是基于http协议进行通信的。

        最早接触HTTP协议应该是在计算机网络课上,那时候只知道HTTP协议是应用层上的东东,并没有进行深入理解。其实HTTP说白了,就是两个进程之间的通信,客户端一般是浏览器,服务器端一般是WEB服务器,浏览器通过发送请求报文给服务器,服务器收到报文后,根据相应请求进行响应,向浏览器发送响应报文,从而结束此次连接。

        HTTP协议是基于请求和响应的,无连接的、无状态的协议。这里的无状态是指对于事务没有记忆能力,意味着一个请求结束后,同一个客户端再发送请求时,它不知道是否是同样的一个人。这样的设计还是验证了大道至简那个道理,毕竟在web上速度还是最重要的。HTTP协议主要包括两个重要的报文,分别是请求报文和响应报文。

        一:请求报文

        主要包含了请求行、消息报头和请求正文。请求行格式为方法 URL 协议版本 CRLF。

        方法最主要的有GET和POST,GET主要是从服务器上获取东西,POST主要是客户端向服务器端传送东西,当然GET也可以向服务器端传东西,只是这些参数是附加在URL上面的,而且不同的浏览器对于可以往URL上面添加参数是有限制的。POST向服务器端传送信息则是将信息写在正文中。

        二:响应报文

       响应报文由状态行、消息报头和响应正文组成。

       状态行:    HTTP版本 状态码 状态码对应描述信息 CRLF。

       状态码有5种取值:

            (1)1xx:指示信息,表示请求已经接受,继续处理。

            (2)2xx:成功,表示请求已被接收,理解和接受。

            (3)3xx:重定向,要完成请求必须进行进一步操作。

            (4)4xx:客户端错误,请求的地址错误或者语法错误。

            (5)5xx:服务器端错误。
        常见的状态码有:

            200 OK      //客户端请求成功
            400 Bad Request  //客户端请求有语法错误,不能被服务器所理解
            401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
            403 Forbidden  //服务器收到请求,但是拒绝提供服务
            404 Not Found  //请求资源不存在,eg:输入了错误的URL
            500 Internal Server Error //服务器发生不可预期的错误
            503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

        当然,HTTP协议还指明了发送给接收者的内容类型,即CONTENT—TYPE,这方便了接收者更快地对内容进行解析。HTTP协议毕竟是应用层的东西,所以还需要通过TCP进行传送。目前对HTTP理解只有这些,以后有了新的认识后再进行补充。

  • 相关阅读:
    javaScript
    CSS
    HTML
    折纸 (模拟)
    不等式(数学)
    周期串查询
    大集训模拟赛十一
    大假期集训模拟赛十
    P1631 序列合并
    KMP(烤馍片)算法
  • 原文地址:https://www.cnblogs.com/306b/p/3256005.html
Copyright © 2011-2022 走看看