zoukankan      html  css  js  c++  java
  • Http协议的知识浅解

    Http协议
    概念: 规定被约束的对象需要遵守的规则!!!

    Http 协议
    Http协议:超文本传输协议(Http:HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准
    HTTP协议的特点:
    * Http 协议遵守一个请求响应模式。(request, response).
    * 请求和相应必须成对出现。
    *必须现有请求后有响应。
    HTTP 协议默认的端口: 80

    Http协议的请求部分

    客户端向服务器发送的数据格式:
    GET方式的抓包:
    GET /WEB09/demo1/subSucc.html?username=aaa&password=123 HTTP/1.1
    Accept: text/html, application/xhtml+xml, */*
    X-HttpWatch-RID: 63397-10023
    Referer: http://localhost:8080/WEB09/demo1/demo1.html
    Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
    Accept-Encoding: gzip, deflate
    Host: localhost:8080
    Connection: Keep-Alive

    POST方式的抓包:
    POST /WEB09/demo1/subSucc.html HTTP/1.1
    Accept: text/html, application/xhtml+xml, */*
    X-HttpWatch-RID: 63397-10049
    Referer: http://localhost:8080/WEB09/demo1/demo1.html
    Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip, deflate
    Host: localhost:8080
    Content-Length: 25
    Connection: Keep-Alive
    Cache-Control: no-cache

    username=aaa&password=123

    由此可知
    格式为GET请求方式【请求行】【请求头】
    POST请求方式【请求行】【请求头】【请求体】
    【请求行】
    请求方式 请求路径 协议版本
    请求方式 : 请求方式有很多种 常用的是 GET和POST。
    GET和POST 的区别?
    *请求参数会显示到地址栏。GET方式有大小限制,GET方式没有请求体。
    *POST;请求参数不会显示到地址栏,在请求体中.POST没有大小的限制.POST方式有请求体。
    * 只用表单设置method="post"才是post请求,其他的都是get请求。
    【请求头】
    *请求头通常都是key:value的键值对的形式。一般情况下一个key对应一个value但是一个key对应多个value的情况。
    *Referer : 网站的来源。防盗链
    *User-Agent :获得客户浏览器的信息。(文件下载:IE:URL编码 火狐 Base64)
    *If-Modified-Since :和相应中一个头一起使用 完成本地缓存的查找。
    【请求体】
    POST方式 提交的参数(GET没有)

    HTTP协议的响应的部分
    服务器向客户端发送的数据的格式:
    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    Accept-Ranges: bytes
    ETag: W/"147-1455670867735"
    Last-Modified: Wed, 17 Feb 2016 01:01:07 GMT
    Content-Type: text/html
    Content-Length: 147
    Date: Wed, 17 Feb 2016 01:17:06 GMT

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h1>鎻愪氦鎴愬姛</h1>
    </body>
    </html>

    【响应行】
    包括 协议版本(一般都是HTTP) 状态码 状态码得描述
    其中常见的额状态码包括以下几种
    200:响应成功
    302:重定向 表示让浏览器去请求新的地址
    响应头:Location,它的值就是新的地址。
    304:查找本地缓存
    Last-Modifired:响应头,在第一次请求时,服务器给浏览器的。
    当前内容的最后修改时间
    If-Modeifired-Since:请求头,在第二次请求时,把上一个请求中的时间归还给服务器
    如果状态码为304,那么这个响应中一定没有响应体!!!
    404:浏览资源不存在(目录的问题 1、首先看配置文件的事。2、看是否是文件名单词是否错误)
    (重点注意) 405:服务器端的方法出现的错误(你需要调用的方法被修改)
    405;客户端错误的一种(请求方式不支持)服务器只支持GET,但客户端发的POST,就会出现这个状态码!
    500:服务器内部错误(后台代码的错误)
    【响应头】
    一个key对应一个value,也有一个key对应多个value 的头。
    Last-Modifed : 最后的修改文件的时间. 与If-Modified-Since一起使用。
    Refresh : 定时刷新.
    Location ;重定向的路径.
    Content-Disposition:文件下载的时候使用的头信息。
    禁用浏览器缓存:
    Pragma
    Exprires
    Cache-Control
    【响应体】
    页面要显示的内容(即后台代码的内容eg:网页页面右击查看网页源代码)。

  • 相关阅读:
    Babel的安装和使用
    ECMAScript 6 和数组的新功能
    网站首页被降权后怎么快速处理
    赫然:怎样学习seo优化技术
    浅谈互联网页面价值
    ZERO:从搜索用户来看SEO
    李彦宏:论搜索引擎三个定律
    焦大:seo该研究用户需求还是搜索算法
    GA教程:使用自定义变量来扩展高级细分
    焦大:做SEO应该研究的用户需求的方向
  • 原文地址:https://www.cnblogs.com/wzmd/p/6204766.html
Copyright © 2011-2022 走看看