zoukankan      html  css  js  c++  java
  • web第二节

    一.HTTP协议和HTTPS协议的区别

    总结:HTTP协议默认采用80端口 HTTPS协议默认采用443 HTTPS相较于HTTP协议更安全一些,采用SSL+安全证书,但是效率低

    二.编码手段模拟HTTP请求(HTTPClient)
    模拟发送HTTP请求:
    1.采用客户端
    PostMan,RestClient
    2.采用代码方式实现模拟HTTP请求(HttpClient)
    2.1HTTPClient模拟Get请求
    首先导入HttpClient依赖

    <dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.2</version>
    </dependency>


    测试编码:

    //Get请求
                        public static void getRequest() throws IOException {
                            //创建一个默认的链接
                            CloseableHttpClient client = HttpClients.createDefault();
                            //创建一个请求
                            HttpGet httpGet=new HttpGet("https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2020-02-05&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=CQW&purpose_codes=ADULT");
                            //执行请求获取响应的结果
                            CloseableHttpResponse response = client.execute(httpGet);
                            //获取响应的状态码
                            System.out.println("服务器返回状态码:"+response.getStatusLine().getStatusCode());
                            //服务器正常响应
                            if(response.getStatusLine().getStatusCode()==200){
                                //获取响应结果
                                System.out.println(EntityUtils.toString(response.getEntity(),"UTF-8"));
                            }
                            //关闭结果对象
                            response.close();
                            //关闭链接
                            client.close();
                        }

    效果如下:

    2.2HttpClient发送Post请求

    public static void postRequest() throws IOException {
                        //创建链接
                        CloseableHttpClient client = HttpClients.createDefault();
                        //创建请求
                        HttpPost post=new HttpPost("http://localhost:8080/HttpClientServlet");
                        //创建参数队列
                        List<NameValuePair> pairList=new ArrayList<>();
                        pairList.add(new BasicNameValuePair("username","张三"));
                        //创建请求体,封装参数
                        UrlEncodedFormEntity entity=new UrlEncodedFormEntity(pairList,"UTF-8");
                        //将请求体交给当前请求
                        post.setEntity(entity);
    
                        //发送请求,接收结果
                        CloseableHttpResponse response = client.execute(post);
                        System.out.println("接收到的结果为:"+EntityUtils.toString(response.getEntity(),"UTF-8"));
    
    
                        //关闭资源
                        response.close();
                        client.close();
                    }

    效果如下:

     

    三.Postman:
    一般在公司中测试接口,采用HttpClient或者PostMan,一般接口返回的数据大多数都是Json格式字符串

    四.TPC长连接和短连接
    长连接
    客户端与服务器建立一次连接可以发送多次请求,持久连接
    心跳检测
    连接(3次握手)--->请求---->传输数据--->请求---->传输数据----xxxxxxx------关闭连接(4次挥手)
    短链接
    客户端与服务器创建一次连接只能发送一次请求
    连接(3次握手)--->请求--->传输数据---->关闭连接(4次挥手)

    长连接关闭:
    1.心跳检测,如果在特定次数和时间内没有响应情况下,认为客户端挂掉,断开连接
    2.客户端主动关闭
    3.Tomcat配置连接超时时间,20分钟
    应用场景:
    长连接:一直保持连接,消息推送,默认网站采用的也是长连接 dubbo基于netty,长连接
    短链接:在调用别人接口时,如果不是特别频繁的情况下,采用短链接

  • 相关阅读:
    CentOS7安装(三)- 配置阿里云yum源
    OSQA的配置
    MySQL学习 (三) Limit-Distinct-Union
    MySQL学习(二)-字段类型及约束
    MySQL学习(一)-基本知识
    Python闭包
    软件测试面试常考点
    人生感悟
    常用的Linux命令
    细说php一些常见的知识点
  • 原文地址:https://www.cnblogs.com/ws1149939228/p/12263550.html
Copyright © 2011-2022 走看看