http协议简介

我们使用Eclipse编写的javaweb项目,最终会发布到tomcat的webapps目录下,Eclipse是我们的开发环境,tomcat是运行环境。
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。

  • 10
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值