Http协议

HTTP协议简介

  • WEB浏览器与WEB服务器之间的一问一答的交互过程,必须遵循一定的规则,这个规则就是HTTP协议
  • HTTP是HyperText Transfer Protocol即:超文本传输协议的简写,他是TCP/ip协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式
  • HTTP协议是学习javaWEB的基石,不深入了解HTTP协议就不能说掌握了WEB开发,更无法维护一些复杂的WEB站点

HTTP基本运行方式

  • 基于HTTP协议的客户、服务器模式的信息交换过程,分四个过程:建立连接,发送请求信息、发送响应信息、关闭连接


  • 这里写图片描述
  • 浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应。所以他有个短连接的特点
  • 浏览器到WEB服务器之间的所有通信都是完全独立分开的请求和响应
  • 在HTML页面中如果包含 标记的话,当浏览器解析到这些标记时,还会向服务器请求访问标记中指定的文件,再次建立连接发出HTTP请求。
  • 如果HTML页面中有一个超级连接:itcast当点击这个连接是也会触发浏览器与WEB服务器开始一次新HTTP通信

HTTP协议的特点

* 在一个TCP连接可以穿多个http请求和响应
* 多个请求和响应可以重叠
* 增加了更的请求头和响应头
* 短连接

这里写图片描述
* 一个完整的HTTP请求包括以下内容

* HTTP消息头
* 使用消息头可以实现Http客户机与服务器之间的条件请求和应答,消这里写图片描述息头相当于服务器和浏览器之间的一个暗号,消息头字段名不区分大小写,但是首字母习惯上大写
* 每个消息头包含一个头字段名称,然后依次是冒号、空格、值、回车和换行符,整个消息头部分中的歌消息头可以按任何顺序排列
* 消息头又可分为通信消息头、请求头、响应头、实体头等四类
* 许多请求头字段都允许客户端在值部分指定多个可接受的选项,多个选项之间可以以都好隔开
* 有些字段可以穿线多次,如:响应信息中可以包含多个Warning字段
* 请求行
* 格式:求情方式资源路径HTTP版本号
* 例:GET/temp3o116.shtml HTTP/1.1
* 请求方式:GET、post、head、options、delete、trace、put
* 用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,如:点击超链接都是get,入股改为POST可通过更改表单的提交方式实现
* 不管是get还是post,都向服务器请求某个WEB资源,两种方式主要区别在数据传递上
* get方式
* get方式传参可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据已&分割
* 例:get/mail/1.html?name=abc&password=xyz HTTP/1.1
* post
* 请求方式若是为post方式,则可以在请求的正文的内容向服务器发送数据,post方式的特点:传输数据无限制
* 状态行
* 格式HTTP版本号 状态码 原因叙述
* 例:HTTP/1,1 200 OK
* 状态码用于表示服务器对请求的各种不同处理结果和状态,为一个三位的十进制数,响应吗分为5类,使用最高位1到5来进行分类如下

各种状态码
F:\笔\笔记整理\JDBC\HTTP状态码_百度百科.mht
复制粘贴到浏览器打开

HTTP请求的细节–请求头1

  • 请求头用于客户端在请求消息中向服务器传递附加信息,主要包括客户端可以接受的数据类型,压缩方法、语言以及发出请求的超链接所属页面的URL地址等信息
  • 常用请求头
    • Accept:浏览器可以接受的 MIME类型(MIME:Tomcat安装目录/conf/web.xml)
    • Accept-Charset:浏览器通过这个头告诉服务器,支持那种字符集
    • Accept-Encoding:浏览器能够进行解码的数据编码方式,如:gzip
    • Accept-Language:浏览器希望接受语言的种类,当服务器能够提供一种以上的语言版本时要用到,可以在浏览器中进行设置
    • Host:初始:URL中的主机和端口
    • Referer:包含一个URL,用户从该URL代表的页面出发访问当亲请求的页面
    • Content-Type:满足内容类型

HTTP请求的细节–请求头2

  • If-Modified-Since:Wed,02 Feb 2011 12:04:56 GMT利用这个头与服务器的文件进行对比,如果一致,则从缓存中直接读取文件
  • User-Agent:浏览器的类型
  • Content-Length:请求消息正文的长度
  • Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1会默认进行持久连接
  • Cookie:最重要的请求头信息之一
  • Date:Date: Mon, 22 Aug 2011 01:55:39 GMT请求时间GMT

HTTP响应细节–常用响应头1

  • 响应头字段用于向客户端传递附加信息
  • 常用响应头
    • Location: http://www.it315.org/index.jsp指示新的资源的位置
    • Server:apache tomcat指示服务器的类型
    • Content-Encoding: gzip服务器发送的数据采用的编码类型
    • Content-Length: 80 告诉浏览器正文的长度
    • Content-Language: zh-cn服务发送的文本的语言
    • Content-Type: text/html; charset=GB2312服务器发送的内容的MIME类型
    • Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT文件的最后修改时间
    • Refresh: 1;url=http://www.it315.org指示客户端刷新频率。单位是秒

HTTP响应细节–常用响应头2

* Content-Disposition: attachment; filename=aaa.zip指示客户端下载文件
* Set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie
* Expires: -1
* Cache-Control: no-cache (1.1)  
* Pragma: no-cache   (1.0)
* Connection: close/Keep-Alive   
* Date: Tue, 11 Jul 2000 18:23:51 GMT
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值