开发者学堂课程【Java Web 开发-Web 应用、Tomcat、HTTP 请求与响应:POST 请求中 http 请求协议内容】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/575/detail/7964
POST请求中http请求协议内容
内容简介:
一、添加表单
二、请求协议
一、添加表单
为了演示 POST 请求,我们需要修改 index.jsp 页面,即添加一个表单。我们写一个小例子。正规排列到序号中,项目名为 day08-1。在这个中,我们要写一个 HTML 页面。不要出现中文,中文容易出现乱码。
代码如下:
<body>
<h1> Login e
Username:
Password:
<input type="submit" value="Login"/>
</form>
</body>
二、请求协议
1.打开浏览器访问地址:
http: //localhost/day08_1/login.html
访问的结果如下:
输入
Username:
zhangsan
Password:
123
POST/index. Jap HTTP/1. 1
Accept:application/x-ms-application,image/jpeg,application/xaml
Referer:http: //localhost/day08 1/login.html
Accept-Language:zh-CN,en-Us;q=0. 5
User-Agent: Mozilla/4. 0 (compatible;MSIE 8.0;Windows NT 6.1:WOW6
Content-Type:application/x-www-form-urlencoded
//表示表单中的数据会自动使用 url 来编码!
Accept-Encoding:gzip, deflateHost:localhost
Content-Length: 30
Connection: Keep-AliveCache-Control:no-cache
username-zhangsanspassword=123
//正文(体)表单是一大堆内容,而发送给服务器的只有一行字符串!
表单字段:
名称是 Usernane;
值是在结果中所填的内容
它的构成为名称,值,&隔开,名称,值。整个表单内容很多,不会把整个表单发给服务器。那样是无意义的。服务器只关心参数的名称和参数的值。其他的什么东西都不用发送。
2.在上述输入中文
Username: 张三
Password:123
访问结果为:
This is my JSP page
得到的字符编码为:
U
sernane
=%
E5
%
BC
%
A0
%
E4
%
B8
%
89
&
pa
ssw
ord=
1
23
张三(%E5%BC%A0%E4%B8%89& )首先会用一个字符编码变成一个字符数组。我们认识的字符编码包括 UTM-8,GPK。
在 UTM-8 中一个汉字三个字节,GPK 一个汉字两个字节。
例如,UTM-8 中张三一共6个字节。一个字节最大范围为负128到127。
-128~127、-128~127、-128~127、-128-127、-128~127、-128~127
先通过字符编码,编程字节拿到这个范围的一个值,这个范围的值一共有六个。第一个字节加一个数值。例如字节加128。
转换法则:
字节+128→转换成16进制→添加%这个前缀
例如:36-->%A4
以上就是我们的一个转换法则。中文在早期的网络中传输是非常不安全的,很容易丢失字节。例如 IE6,我们用 url 编码的作用是方便这些东西在网络中传输,从客户端传递给服务器再传回来。
url 编码这样可以保持信息的完整性。我们表单可以自动把这些东西搞定。
超链接里面,如果说参数只是中文,HTTP 协议认为。就不应该在超链接中有中文出现。一旦出现超链接中有中文,必须自己去改写编码。
3. Post请求两个要点
(1)一是正文的格式。
表单虽然很多真正发给服务器的内容并不多。多个参数中间用&隔开。等号左边是名称等号,右边是值。
(2)二是 URL 编码的作用。
Content-Type 头 Content-Type:application/x-www-form-urlencoded
表示表单中的数据会自动使用 url 来编码!
可以说明这一点。后期我们会修改该值。Content-Type 在进行上传的时候会进行修改,平时不修改。