zoukankan      html  css  js  c++  java
  • http理解

    http协议工作在网络模型中的应用层,下面主要介绍http的请求与响应

    请求构成:请求行、请求头、空行、实体(不是必须的)

    请求行构成:请求方法 资源路径 协议版本

    请求头构成:请求头包括很多内容,这里介绍几个常见的

                         Host:服务器域名,包括主机和端口号(必须要有)

                         Conten-type:实体种类(当为post方法时必须有该字段,否则服务器端接收不

                                              到相应的信息)

                         Conten-length:实体长度,指明发送实体的大小(当为post方法时必须有该字                         

                 段,并且当接收到相应长度的内容后就不再接收)

                         Cookie:存储cookie值,为了防止伪造cookie,cookie信息可能会与其他字段相

                                       关联,用于判断cookie是否伪造

                         Referer:表示该请求是通过哪个连接进来的,用于防盗链,若是直接通过浏览                                    

              器访问的就不会携带该字段,也常用于访问分析

                         Accept-Encoding: gzip, deflate(客户端能接收的压缩数据的类型)

                         Connection: Keep-Alive(维护客户端和服务端的连接关系),因为默认的http连接是一次交互后就会自动断开连接,这样的话会造成服务器端的压力过大,而使用keep-Alive以后只有当客服端请求断开后才会断开,并且这种连接称为长连接  

    Accept: (客户端能接收的资源类型)
    Accept-Language: en-us(客户端接收的语言类型) 

    与缓存相关的思路:(相关的请求头不再列出,可自行查阅)

    对于静态资源,浏览器它会先根据本地保存的缓存时间来查看是否过期,未过期就直接拿本地的。

    如果过期了则会携带上次获取到的文件修改日期 请求服务器,服务器则会比对文件修改日期考虑是否返回新的数据。

    如果浏览器本地的是最新的服务器并没修改,则会返回304告诉本地是最新的 直接拿上次记录的响应信息就行,于是该静态资源再次被缓存

    空行:不管后面有无请求实体,空行是必须有的

    常见的请求方法:GET POST HEAD PUT

    响应构成:响应行 响应头 空行 响应实体(不是必须的,304状态码)

    响应行构成:协议 状态码 状态码

    响应头构成:与请求头类似,都是以key:value的形式给出

    下面主要介绍一下状态码:

    1xx:指示信息--表示请求已接收,继续处理,。

    2xx:成功--表示请求已被成功接收、理解、接受。

    3xx:重定向--要完成请求必须进行更进一步的操作。

    4xx:客户端错误--请求有语法错误或请求无法实现。

    5xx:服务器端错误--服务器未能实现合法的请求。


    常见状态代码、状态描述的说明如下。

    200 OK:客户端请求成功。

    301:永久重定向

    302:临时重定向

    304:资源未修改,可以从本地缓存中读取

    307:重定向保持原有的post数据,防止数据丢失

    400 Bad Request:客户端请求有语法错误,不能被服务器所理解。

    401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。

    403 Forbidden:服务器收到请求,但是拒绝提供服务。

    404 Not Found:请求资源不存在,举个例子:输入了错误的URL。

    500 Internal Server Error:服务器发生不可预期的错误。

    503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。

    心有多大,天有多高,一起奋斗!!
  • 相关阅读:
    路由配置系统(URLconf)
    Django常见命令
    MVC框架和MTV框架
    Django基础
    服务器程序和应用程序
    自定义web框架
    HTTP协议对收发消息的格式要求
    web框架的本质
    python国内镜像源
    Scrapy框架安装失败解决办法
  • 原文地址:https://www.cnblogs.com/zhaolei1996/p/11369530.html
Copyright © 2011-2022 走看看