HTTP协议介绍

1,HTTP介绍:

http :超文本传输协议

http的特点:

[1]基本tcp协议 osi(open System Interconnect)开放式系统互联 定义网络模型 物理层 网络链路层 网络层 传输层 会话层 表示层 应用层

a,tcp 三次请求 (三次握手 )

b,tcp 默认端口是80

c,http属于应用层

[2]基本请求和响应 必须先有请求 在有响应

 

 

2,httpwatch 抓包工具 (必须在32位IE游览器使用)

 

1)get请求

请求行:第一行

请求头:非第一行

2)post请求

请求行:第一行

请求头:非第一行

请求体:请求头的下面 文本的方式

特点:安全 数据没有大小限制

 

accept:客户端可以接收的类型

referer:请求的地址

accept-language:语言

user-agent:浏览器标识

accept-encoding: 客户端支持的数据压缩格式

host:访问的主机

Conetent-length:请求体的长度

DNT:1 不允许追踪

connection:kepp-alive 请求服务器后,保持连接,还是失去连接

cache-control:no-cache 不缓存

 

响应行

响应头

响应体

分段流  :电视直播 1-1000不会卡顿

 

 

3,常见的响应状态码:

 

100~199 Informational 请求信息不足 ,还需要其他信息才能处理

200~299 Success 请求处理成功

300~399 Redirection 服务器已经处理完毕,客户端还需要进一步动作

400~499 Client Error 客户端错误 URL写错了

500~599 Server Error 服务器端错误    tomcat挂掉了

 

 

200 代表请求成功

302 代表重定向

304 找本地缓存

404 访问资源不存在

500 服务器内部错误

 

响应头:

accept-ranges:bytes 范围

last-modifyed:最后一次修改的时间

 

 

chrome   右键  检查  

 

 

4,Range头访问服务器下载问题

    【1】Range介绍   

            作用:对文件进行分段下载

            原理:

            固定使用方法:  

    connection.setRequestProperty("Range", "bytes=1000-");         从1001个字节开始下载,0-1000 不会下载

    connection.setRequestProperty("Range", "bytes=0-99");           从0字节起,下载到100个字节

  【2】Demo 测试:

a,在 Tomcat\apache-tomcat-7.0.65\webapps\qq  中 添加要下载的文件。

b,创建url 获取到文件进行IO流下载

package com.heima.range;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.URL;

public class Range {

    public static void main(String[] args) {

        try {

            // [1]准备一个URL路径

            URL url = new URL("http://localhost:8080/qq/aa.txt");

            // [2]发送这个请求

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            // [2.1]添加一个请求头固定写法            

            connection.setRequestProperty("Range", "bytes=1000-");

            // [3]接收服务端响应 接收响应码

            int responseCode = connection.getResponseCode();

            if (responseCode == 206) {

                // 请求成功了 206是Tomcat接受成功对应响应码

                // [4]接收服务端的内容 只要有流 那么就流对接

                InputStream stream = connection.getInputStream();

                FileOutputStream fops = new FileOutputStream("bb.txt");

                int len = 0;

                byte[] buffer = new byte[1024];

                while ((len = stream.read(buffer)) != -1) {

                    fops.write(buffer, 0, len);

                }

                stream.close();

                fops.close();

                System.out.println("下载完成");

            }

        } catch (Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兴帅_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值