http协议简介

HTTP叫超文本传输协议,基于请求/响应模式。 
HTTP是无状态协议,FTP是有状态。 
请求协议(格式)和响应协议(格式)

请求协议

请求首行:请求方式 请求路径 协议和版本,例如:GET /index.html HTTP/1.1。 
2~n请求头:请求头名称:请求内容,即为key:value格式,例如:Host:localhost:8080。 
空行:用来与请求体分开。 
请求体:GET没有请求体,只有POST有请求体。

GET请求

HTTP默认的请求方式是GET。 
GET: 
- 没有请求体。 
- 数据必须在1K之内。 
- GET请求数据会暴露在浏览器的地址栏中。(密码)

GET请求的常用的操作

  • 在浏览器的地址栏中直接给出URL,那么一定就是GET请求。
  • 点击页面上的超链接也一定是GET请求。
  • 提交表单时,表单默认是GET请求,也可以设置为POST

POST请求

  • 数据不会出现在地址栏中。
  • 数据的大小没有上限。
  • 有请求体。
  • 请求体中如果出现中文,会使用URL编码。

使用表单可以发送POST请求,但表单默认是GET 
<from action="" method="POST"> 
</from>

响应协议

响应首行 
响应头信息 
空行 
响应体

这里写图片描述 
状态码:200 表示请求成功 
Content-Type:text/html;charse=UTF-8:响应体使用UTF-8编码。

状态码

响应头说明了响应的真正含义,例如200表示响应成功,302表示重定向,这说明浏览器需要再发一个新的请求。

  • 200:请求成功,浏览器通常会把响应体内容显示在浏览器中。
  • 404:请求的资源没找到。说明客户端错误的请求了不存在的资源。
  • 500:请求资源找到了,但是服务器内部出现了错误。
  • 302:重定向,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新的URL地址。
  • 304:这里写图片描述

其他相应头

告诉浏览器不要缓存的响应头: 
- Expires:-1; 
- Cache-Control:no-cache; 
- Pragma:no-cache; 
自动刷新响应头,浏览器会在3秒之后请求http://www.baidu.com 
- Refresh:3;url=http://www.baidu.com


小笔记

URL编码

任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。那么汉字的url编码,如:“胡”的ascii码是-17670,十六进制是BAFA,url编码是“%BA%FA”。

package demo;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import org.junit.Test;

public class demo {

    @Test
    public void fun1() throws UnsupportedEncodingException{
        String s="大家好";
        s=URLEncoder.encode(s,"UTF-8");
        System.out.println(s);  
    }
}

结果如下: 
%E5%A4%A7%E5%AE%B6%E5%A5%BD


URL:统一资源定位符,俗称网址,它表示一个真实存在的资源! 
URI:统一资源标识符,它包含URL,它更加宽泛,在网络上任何描述资源东西都是URI,它可以是不存在的资源,例如:ndsj@163.com。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值