HTTP协议详解(请求,响应)

HTTP协议详解

HTTP协议概述

1,B/S网络结构
    浏览器/服务器模式
    
    web浏览器  (http)  web服务器    (SQL)  数据库服务器
    
2,HTTP协议概述
    超文本传输协议(HyperText Transfer Protocol)
    HTTP是一个客户端和服务器端请求和应答的标准

3,HTTP协议的特点
    简单,快速:只需传送请求方法和路径
    灵活  :HTTP允许传输任意类型的数据对象,正在传输的类型有ContentType进行标记
    无连接:每次连接只处理一个请求,请求结束后就断开,采用这种方式可以节省传输时间
    无状态:对于事务处理没有记忆能力,不存储本次请求意外的数据
            所以需要其他信息时,需要重传,导致数据传送的数据量增大
            另外,在不需要先前信息时,应答比较快

HTTP协议 之 URL

1,什么是url
    url-uniform resource locator:统一资源定位符
    格式:protocol://hostname[:port]/directory/filename?name=value#anchor
    举例:http://www.itcast.cn/include/news.php?p=5#top

2,url各部分含义
    
    protocol    浏览器使用的协议:http,https,ftp,file等
    hostname    服务器主机名称
    port        端口号
    directory   指定访问的资源目录名称
    filename    指定访问的资源名称
    ?name=value 指定访问资源时,附带的参数部分
    #anchor     指定访问资源时的锚点名称(网页的不同部分)

HTTP 协议之请求

1,http请求的构成
    三部分:请求行,请求头,请求正文

2,HTTP请求行的格式
    格式:Method Request-URI HTTP-Version
    参数
        Method:请求方法,必须大写
        Request-URI:统一资源标识符(URI)
        HTTP-Version:表示请求的HTTP协议版本,HTTP/1.0短连接,HTTP/1.1场链接
                    长连接:数据传输完成,保持连接通道不断开,等待同域名下继续使用钙通道传输数据

3,HTTP请求头含义
    报头名称            含义
    User-Agent      用户代理,允许客户端将他的操作系统,浏览器和其他属性告诉服务器
    Host            用户指定被请求资源的主机和端口号,它通常从HTTP URL中提取出来的
    Accept          用于指定客户端接收哪些类型的信息,如image/gif,text/html,*/*(所有类型)
    Accept-Language 指定客户端可以接受到语言类型
    Accept-Encoding 指定可接受的内容压缩编码类型
    Accept-Charset  用于指定客户端接收的字符集
    Cookie          写到服务器端的COOKIE数据
    Connection      连接类型,keep-alive(保持激活,短时间不断开,一般为30s),Close(立即断开)
    Cache-Control   控制缓存,no-cache(不缓存)
    Refer           可以记录访问的来源,统计访问量,可以用来作防盗链

4,HTTP请求正文
    GET方式:无消息体,数据附在url之后传递到服务器
    POST方式:有消息体,数据放在消息体中传递到服务器
    消息体和消息头之间有一空行,不能省略
    
5,下面的代码需要,http需要发送几次请求
    test.php文件内容入下
    <h1>北京传值博客教育</h1>
    <p><img src="a.jpg"></p>
    <p><img src="b.jpg"></p>
    
    img link script frame   都是自动向服务器发送请求

HTTP协议之响应

1,响应的构成
    三部分:状态行,响应头,响应正文

2,HTTP状态行的格式
    格式:HTTP-Vsersion Status-Code Reason-Phrase
    参数:
        HTTP-Vsersion   表示服务器HTTP协议的版本
        Status-Code     表示服务器发回的响应状态代码
        Reason-Phrase   表示状态代码的文本描述
    
3,HTTP响应状态码:
    状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能的取值
    1xx:指示信息-表示请求已接收,继续处理
    2xx:成功-表示请求已被成功接收、理解,接受
    3xx:重定向-要瓦城请求必须进行跟进一步的操作
    4xx:客户端错误-请求有语法错误后请求无法实现
    5xx:服务器端错误-服务器未能实现合法的请求
    
    常见HTTP响应状态码含义
    状态码      含义
    200        OK,请求已成功
    302        请求的资源临时从不同的URL响应请求,由于这样的重定向是临时的
                客户端应当继续向原有地址发送以后的请求
    304         Not Modified 文档的内容(自上次访问以来或者根据请求的条件)并没有改变
    400         Bad Request 语义有误,当前请求无法被服务器理解
    401         Unauthorized 当前请求需要用户验证
    403         Forbidden 服务器收到请求,但是拒绝提供此服务
    404         Not Found   请求资源不存在
    408         Request Timeout 请求超时
    500         Internal Server Error 服务器发生不可预知的错误
    503         Server Unavaliable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
    
4,302状态码演示
    301 永久重定向,更改服务器配置,重启服务器,由旧域名转成新域名 
    302 临时重定向,不需要服务器配置,直接在PHP中修改,不是重大改变用302
    
    //header函数:告诉浏览器如何做,浏览器收到这个临时跳转命令,会向新的地址发送请求
    header("location:./delete.php");//302状态码

5,304状态码演示
    304的含义:文件内容没有修改,不需要从服务器下载数据,直接从缓存读取
    
    echo "<img src='./images/img1.jpg'>";

6,403状态码演示
    含义:请求接受,但无权访问
    对apache服务器设置的虚拟站点进行权限更改,在无权访问的情况下会报403的错误

7,404状态码演示

8,HTTP响应头含义
    一个HTTP响应代表服务器给浏览器回送的数据,同时告诉浏览器应当怎样处理数据
    响应报头名称          含义
    Date            告诉浏览器,请求页面的时间
    Server          服务器软件信息
    Content-length  回送数据的字节数
    Content-Type    回送内容的类型
    Expires         表示存在时间,允许客户端在这个时间之前不去检查(发请求),
                    等同max-age的效果。但是如果同时存在,则被Cache-Control
                    的max-age覆盖
    Pragma          缓存控制
    Cache-Control   缓存控制
    X-Powered-By    版权信息
    Keep-Alive      连接类型
    Location        响应报头域用于重定向到一个新的位置
    Refresh         页面刷新时间
    Last-modified   指定服务器上保存的最后修订时间

9,刷新并跳转
    等待3s并跳转
    header("refresh:3;url=./delete.php")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值