HTTP协议

  超文本传输协议,是一种建立在TCP上的无状态连接。整个基本流程是客户端发送一个http请求,说明客户端想要访问的资源和请求的动作,服务端收到请求后,开始处理请求,并根据请求做出相应的动作访问服务器资源。最后通过发送HTTP响应把结果返回给客户端。

  一个请求的开始到响应的结束称为事务,当一个事务结束后,会在服务端添加一条日志条目。

  1、http请求

    组成:状态行、请求头、请求正文

    状态行:请求方式Method、请求url、协议版本号

    请求正文:http请求的数据

  2、请求方式

    get:访问服务器的资源

    post:向服务器发送要修改的数据

    put:向服务器上传资源

    head:获取服务器文档的首部

    delect:删除服务器的资源

  3、http请求头

    Accept:客户端可接受的MEMI类型

    Accept-Charset:客户端可接受的字符集

    Accept-Encoding:编码格式

    Accept-language:语言种类

    Connection:是否持久连接

    Cookie:浏览器用这个属性向服务器发送Cookie,是在浏览器中寄存的小型数据体,可以记载和服务器相关的用户信息,也可以用来实现会话功能。

    host:域名

    from:使用post请求时,提交数据

    User-Agent:浏览器表识

    Referer:页面跳转处(包含一个url,用户从该url代表的页面出发,访问当前请求的页面)

  4、状态行

    1XX:表示服务器成功接受部分请求,要求客户端继续提交其余请求才能完成整个处理过程。

      100:(继续)请求者应继续提出请求

      101:(切换协议)请求者已要求服务器更换协议,服务器已确认并准备更换。

    2XX:表示服务器成功接收请求并已完成整个处理过程。常用200(OK 请求成功)

      200:(成功)服务器已完成请求。

      202:(已接受)服务器已接受请求,但未处理。

    3XX:为完成请求,客户需要进一步细化请求。(重定向)

      300:(多种选择)针对请求,服务器可执行多种操作

      301:(永久移动)所请求的页面已永久转移至新的url

      302:(临时移动)所请求的页面已临时转移至新的url

      (官方的比较简洁的说明:301 redirect: 301 代表永久性转移(Permanently Moved);302 redirect: 302 代表暂时性转移(Temporarily Moved )

      303:(查看其他位置)请求者应对不同的位置使用单独的GET请求来检索响应时,服务器返回其代码

      304:(未修改)自上次修改后,请求的页面未修改过。

      305:(使用代理)请求者只能使用代理请求页面

      307:(临时重定向)服务器目前从不同位置的页面响应请求,但请求者应使用原有位置来响应以后的请求。

    4XX:请求错误

      400:(错误请求)服务器不理解请求的语法。

      401:(未授权)请求要求身份验证。

      403:(禁止)服务器拒绝请求。

      404:(未找到)服务器找不到请求的页面。

      405:(方法禁用)禁用请求中指定的方法。

    5XX:服务器错误

      500:(服务器内部错误)服务器遇到错误,无法完成请求。

      501:(尚未实施)服务器不具备完成请求的功能。

      502:(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。

      503:(服务不可用)服务器目前无法使用(由于超载或停机维护)。通常只是暂时情况!

      504:(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求。

      505:(HTTP版本不受支持)服务器不支持请求中所用的HTTP协议版本。

  4、http响应头

    Allow:服务器支持的请求方式

    content-Encoding:文档的编码格式

    Content-Length:内容长度

    Content-Type:文档类型,一般为text/plain

    Data:当前的GMT时间

    Server:服务器名称

    set-Cookie:设置和页面关联的Cookie

posted on 2018-12-06 23:05  痴人谈情  阅读(130)  评论(0编辑  收藏  举报