博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Http协议
阅读量:6430 次
发布时间:2019-06-23

本文共 2957 字,大约阅读时间需要 9 分钟。

http协议内容

  • 请求端

请求(浏览器-》服务器)

GET /day09/hello HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive

  • 响应端

响应(服务器-》浏览器)

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Length: 24
Date: Fri, 30 Jan 2015 01:54:57 GMT

  • 响应消息

this is hello servlet!!!

Http请求

GET /day09/hello HTTP/1.1 -------------请求行

Host: localhost:8080 -------------请求头(多个key-value对象)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
--------------------一个空行
name=eric&password=123456 ----------------(可选)实体内容

URI>URL 资源定位符

请求头

Accept: text/html,image/* ----------- 浏览器接受的数据类型

Accept-Charset: ISO-8859-1 ------------- 浏览器接受的编码格式
Accept-Encoding: gzip,compress ------------ --浏览器接受的数据压缩格式
Accept-Language: en-us,zh- -------------浏览器接受的语言
Host: ------------------(必须的)当前请求访问的目标地址(主机:端口)
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT -------------------浏览器最后的缓存时间
Referer: --------------------- 当前请求来自于哪里
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) ------------------------浏览器类型
Cookie:name=eric -------------- 浏览器保存的cookie信息
Connection: close/Keep-Alive ----------------- 浏览器跟服务器连接状态。close: 连接关闭 keep-alive:保存连接。
Date: Tue, 11 Jul 2000 18:23:51 GMT -------------- 请求发出的时间

提交内容

  • 只有POST提交的参数才会放在实体内容中

HttpServletRequest对象

HttpServletRequest对象作用是用于获取请求数据。

核心的API:
请求行:
request.getMethod(); 请求方式
request.getRequetURI() / request.getRequetURL() 请求资源
request.getProtocol() 请求http协议版本
请求头:
request.getHeader("名称") 根据请求头获取请求值
request.getHeaderNames() 获取所有的请求头名称
实体内容:
request.getInputStream() 获取实体内容数据

img_6f70409ff2d7cbeea7ed21f4dc575d8c.png
image.png
img_7fc7e29ccd945bf5a1dde143b7e6531a.png
image.png
img_88786d5a78386805338869faffb08553.png
image.png

HttpServletResponse对象

  • 响应行
response.setStatus(404);  //修改状态码response.sendError(404);  //发送404的状态码+404的错误页面
  • 响应头
response.setHeader("name","value");    //name和value必须是同一个键值对的内容
  • 实体内容
respponse.getWriter().writer("hello world");  //字符内容response.getOutPutStream().writer("hello world".getBytes());  //字节内容
  • 重定向(请求重定向相当于超链接跳转页面)
response.setStatus(302);  //发送一个302状态码response.setHeader("location","uri/url");  //location的响应头      **请求重定向的简化书写**response.sendRedirect("uri/url");  //发送一个302状态码+location的响应头
  • 定时刷新
response.setHeader("refrech","1");  //间隔一秒定时刷新response.setHeader("refrech","3;url/uri");  //间隔3秒跳转到指定的页面(uri/url)
  • 编码类型(Content-type)
//设置响应实体内容编码response.setCharacterEncoding("utf-8");//服务器发送给浏览器的数据类型和内容编码response.setHeader("content-type", "text/html");      **简化书写**response.setContentType("text/html;charset=utf-8") ;  //和上面代码等价。推荐使用此方法
  • 下载
//Content-Disposition(以 下载的方式打开)response.setHeader("Content-Disposition", "attachment; filename="+file.getName());  //filename="+file.getName()是获取图片的名称并且在下载界面显示

转载地址:http://ujiga.baihongyu.com/

你可能感兴趣的文章
Python24 终端如何输出彩色字体
查看>>
winrar3.93
查看>>
XSS跨站脚本***
查看>>
MFC类库之CArray
查看>>
Java环境一键配置,需要手动输入jdk路劲。
查看>>
redirect与dispatcher.forward的区别
查看>>
Oracle 主键自增 Native Sequence两种方式
查看>>
关于Java进程流程简介
查看>>
Git 常用命令
查看>>
HTML基本结构
查看>>
linux 挂载光驱
查看>>
ASP.NET MVC Area操作
查看>>
CSS颜色代码大全
查看>>
八进制的转换
查看>>
slice()
查看>>
LINQ之路10:LINQ to SQL 和 Entity Framework(下)
查看>>
circle area
查看>>
怎么改变按钮的图标
查看>>
当输入流和输出流同时作用一个文件
查看>>
MySQL关于表碎片整理OPTIMIZE TABLE操作
查看>>