Http协议

当客户端连上web服务器,并想访问web服务器的某个web资源时,需要遵守一定的通信格式,而Http协议就是用于定义客户端与web服务器通信格式的协议。Http全称hypertext transfor protocol,超文本传输协议,是基于TCP/IP协议的一个应用层协议。
一、Http请求头。
客户端连上服务器后,向服务器请求某个web资源,称之客户端向web服务器发送一个Http请求,一个完整Http请求应包括,一个请求行、若干消息头、以及实体内容。
1)请求行:用于描述客户端的请求方式,请求资源的名称,以及使用的HTTP协议版本号。GET(请求方式)/books/java.html(资源名称) HTTP/1.1
请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
常用请求方式有:GET、POST。用户如果没有设置,默认情况浏览器向服务器发送GET请求,例如在地址栏输入地址访问和点击超链接访问都是GET,若想把GET改为POST,可以通过更改表单的提交方式实现。
两者主要区别:
GET:可以在请求的URL地址后以"?"的形式带上交给服务器的数据,多个数据之间以"&"隔开。(附带参数有限制,其数据容量通常不能超过1k)
POST:可以在请求实体中向服务器发送数据,数据量无限制。
2)请求头:用于描述客户端请求那台主机,以及客户端的一些环境信息等。
请求头:

Accept:text/html,image/* 用于告诉服务器客户机支持的数据类型
Accept-Charset:ISO-8859-1 用于告诉服务器客户机采用的编码
Accept-Encoding:gzip,compress 用于告诉服务器客户机支持的数据压缩格式
Accept-Language:en-us,zh-cn 用于告诉服务器客户机的语言环境
Host:www.it315.org:80 用于告诉服务器客户机想访问的主机名
if-Modified-Since:Tue,4 Oct 2013 18:23:51 GMT 用于告诉服务器,资源的缓存时间(下次在访问时根据时间比对网页是否更新,没更新直接拿出缓存,高级网站开发十分有用,减去大量访问次数)
Referer:http//www.it315.org/index.jsp 用于告诉服务器客户机是从哪个资源访问服务器(防盗链,盗链跳到首页)
User-Agent:Mozillz/4.0(compatible;MSIE 5.5;Windows NT 5.0) 用于告诉服务器客户机的软件环境
Cookie 用于向服务器带数据
Connection:close/Keep-Alive 请求完后是否保持连接
Data:Tue,4 Oct 2013 18:23:51 GMT 当前时间

3)请求数据

二、Http响应头。
web服务器响应客户端的请求并回送给客户端数据,称之为Http响应头。一个Http响应头包括,一个响应行、若干响应头、以及实体内容。
1)状态行:用于描述服务器对请求处理的结果。HTTP/1.1(响应协议) 200(状态码) OK
状态码:表示服务器对请求的处理结果,它是一个三位的十进制数。状态码分为五类。
100-199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
200-299:表示成功接收请求并完成整个处理结果,常用200。
300-399:为完成请求,客户端进一步细化请求。例如,请求的资源已移动一个新地址。常用302、307和304。(302新的地址,304或307拿缓存)
400-499:客户端的请求有错误,常用404(请求资源不存在)和403(没有权限)。
500-599:服务器端出现错误,常用500。
2)响应头:用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会它回送的数据
响应头:
Location:http//www.it315.org/index.jsp				配合302状态码使用,用于告诉客户端找谁(请求重定向,登录...)
Server:apache tomacat 用于告诉客户端服务器的类型
Content-Encoding:gzip 用于告诉客户端数据的压缩格式
Content-Length:80 用于告诉客户端压缩数据的长度
Content-Language:zh-cn 用于告诉客户端回送语言环境
Content-Type:text/html;charset=GB2312 用于告诉客户端回送数据类型
Last-Modified:Tue,4 Oct 2013 18:23:51 GMT 用于告诉客户端当前资源的缓存时间
Refresh:1;url=http//www.it315.org 用于告诉客户端隔多长时间刷新一次(聊天室、股票...),也可以控制刷到哪里。
Content-Disposition:attachment;filename=aaa.zip 用于告诉客户端以下载方式打开数据
Transfer-Encoding:chunked 用于告诉客户端数据的传送格式
Set-Cokkie:SS=QO=5Lb_nQ; path=/search
ETag:W/"7777-1242234904000" 缓存相关(可以做到时时更新)
Expiress:-1 用于告诉客户端把回送的资源缓存多长时间,-1或0表示不缓存
Cache-Control:no-cache 控制客户端不要缓存
Pragma:no-cache 控制客户端不要缓存
Connection:close/Keep-Alive 请求完后是否保持连接
Date:Tue,4 Oct 2013 18:23:51 GMT 当前时间

3)服务器向客户端回送的数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值