HTTP协议详细介绍

 

1. Http协议

http协议就是规范浏览器和服务器之间通讯数据格式的一个标准。

 

2. 浏览器和服务器通讯示意图

 

请求html中的图片

有多少个不同的图片(资源),就有多少次请求(html一次,每个图片各一次)

 

2. HTTP请求

#请求行 GET /books/java.html HTTP/1.1

协议版本:

HTTP/1.0:每请求和响应一次,就关闭连接。

HTTP/1.1可以在一次连接中,可以多次请求。

请求地址:

URL:统一资源定位符,指向网络资源的路径。

URI:统一资源标识符,指向本地资源或局域网资源或互联网资源的路径。

 

uri=/fuxi1/request

url=http://localhost:8080/fuxi1/request

请求方法:

常见方法:GET POST HEAD DELETE TRACE CONNECT PUT

常用方法:GET POST

GET方法:GET /day09web/get_post.html?uname=aa&upwd=aaa HTTP/1.1

A) 数据放在请求行的地址后面(问号后面+数据,每个数据用&分隔),实体内容为空。

B) 不合适提交敏感数据

C) 地址栏数据大小有限制,不抄1KB.

D) 浏览器默认提交方式是GET

POST方法:POST /day09web/get_post.html HTTP/1.1

A) 数据放在实体内容中(每个数据用&分隔

B) 适合提交敏感数据

C) 提交的数据没有限制

HttpServletRequest获取请求行的常用方法

String method = req.getMethod();//获取提交方法

String uri = req.getRequestURI();//获取URI

String url = req.getRequestURL()

 

 

 

 

#请求头

常用请求头

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

Accept-Charset: ISO-8859-1  浏览器接受的编码格式

Accept-Encoding: gzip,compress   浏览器接受的数据压缩格式

Accept-Language: en-us,zh-       浏览器接受的语言

Host: www.qingmang.com      (必须的)当前请求访问的目标地址(主机:端口)

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT     浏览器最后的缓存时间

Referer: http://www.qingmang.com/index.jsp     当前请求来自于哪里

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 浏览器类型

Cookie:                           浏览器保存的Cookie信息

Connection: close/Keep-Alive           浏览器跟服务器的连接状态

Date: Tue, 11 Jul 2000 18:23:51 GMT    请求发出的时间

 

 

#实体内容

常用方法GETPOST都适用

req.getParameter("uname");   //根据表单控件的name属性值获取对应的value

req.getParameterNames();   //获取所有的表单控件的name属性值

req.getParameterValues(name);  //获取所value值(多选框)

 

获取请求时的编码问题:

解码默认使用iso-8859-1解码,所以出现中文乱码问题

解决方法:

Post提交:在doPost()第一行写:req.setCharacterEncoding("utf-8");或者response.setContentType("text/html;charset=utf-8");

Get提交:new String(str.getBytes("iso-8859-1"),"utf-8");

 

3. HTTP响应

3.1 响应行

例如:HTTP/1.1 200 OK

常见状态码

200 表示成功接收请求并已完成整个处理过程,常用200

302/304 未完成请求,客户需进一步细化请求

404  表示客户端的请求有错误,常用404

500  表示服务器端发生错误。

 

修改状态:

//修改状态码

//res.setStatus(404);

//修改状态码的同时发送404页面

//res.sendError(404);

3.2 响应头

常用响应头

Location: http://localhost:8080/day08ee/index.jsp 重定向的地址,和302一起

Server:apache tomcat 服务器类型

Content-Encoding: gzip   发送给浏览器的压缩格式

Content-Length: 80 发送给服务器的数据长度

Content-Language: zh-cn 服务器支持的语言

Content-Type: text/html; charset=GB2312 发送给浏览器的数据类型和内容编码

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 服务器最后的修改时间

Refresh: 1;url=http://www.it315.org 定时刷新

Content-Disposition: attachment; filename=aaa.zip 浏览器以下载方式打开资源

Transfer-Encoding: chunked

Set-Cookie:SS=Q0=5Lb_nQ; path=/search 服务器发送给浏览器的cookie信息

Expires: -1

Cache-Control: no-cache 通知浏览器不进行缓存

Pragma: no-cache

Connection: close/Keep-Alive 服务器和浏览器的链接状态 close关闭Keep-Alive保持

Date: Tue, 11 Jul 2000 18:23:51 GMT

 

 

 

 

 

 

 

 

 

 

 

3.3 实体内容

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值