前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTTP协议理解

HTTP协议理解

作者头像
用户1148399
发布2018-01-09 15:32:34
4680
发布2018-01-09 15:32:34
举报
文章被收录于专栏:web前端web前端

HTTP(Hyper Text Transfer Protocol)超文本传输协议,是一种请求响应式协议,类似两国会晤中需要遵守的规则。那么,其中有什么内容特点呢?

HTTP特点:

1)支持客户端/服务器模式(浏览器也是一种客户端)

2)够简单,所以够快速

3)够灵活,传输什么类型的数据都能适应

4)无状态,指对事务处理没有记忆,也就是说没有续传性,一旦断开,下次重新连接要重新传输(区别于FTP是有状态的,假如传文件传到一半断网了,没事,下次接着传)

HTTP版本问题:

  HTTP1.0每次只能处理一个HTTP请求,这将直接导致用户访问一个包含各种链接的网页时,速度缓慢(每个链接都要有一个请求和一个响应多慢啊)

  HTTP1.1一个TCP连接上可以传送多个HTTP请求和响应

HTTP消息=HTTP请求消息+HTTP响应消息

HTTP请求消息=请求行+请求头+请求消息

1)请求行:请求方式+资源路径+HTTP版本(用空格分隔):GET /index.html HTTP/1.1

  其中请求方式分为get和post两种方式,区别如下:

  get方式生成的请求会将参数部分加载在URL后面,以?为标志,也就是说保密性不强,get方式传送的数据量有限(不超过1KB)

  post方式保密性强,传输大小无限制,所以实际开发中这种方式更受青睐!

2)请求头:主要向服务器端传递附加信息:(头字段名称+冒号+空格+值)   <%--   这里是解释-->

  Host: localhost:8080    <%--主机和端口号(必须包含这个)-->

  Accept: image/gif, image/x-xbitmap, *    <%--告诉服务器,客户端可以接受的MIME(多用途互联网邮件扩展)类型-->

  Referer: http://localhost:880/itcast/  <%--检验请求网站的来源,即请求发出站,可以用于网站的防盗链-->

  Accept-Language: zh-cn,zh;  <%--客户端期望服务器返回哪个国家语言的文档,这里表示中国(en-us表示美国)-->

  Content-Type: application/x-www-form-urlencoded  <%--指出实体内容的MIME类型-->

  Connection: Keep-Alive  <%-- 建立连接是否连续 -->

  Cache-Control: no-cache  <%--告诉服务器端是否允许缓存该页面-->

HTTP响应消息=响应状态行+响应消息头

1)响应状态行:HTTP版本+状态码+状态码对应的文本信息(空格分隔):HTTP/1.1 200 OK

  其中状态码由三位数字组成,表示请求是否被理解或被满足,其中第一个数字定义了响应的类别

  1xx:请求已接收,需要继续处理

  2xx:请求已接收、理解并接受(常见的200表示正常)

  3xx:为完成请求,客户端需要进一步细化请求(302表示找到,例如请求重定向SendRedirect)

  4xx:客户端请求出错(常见的404表示页面找不到,400请求无效,408请求超时)

  5xx:服务器出错(常见的500内部服务器出错)

2)HTTP相应头:紧接着响应状态行之后是若干响应消息头,也是传递附加信息,不过是服务器端向客户端发送的

  Server: Apache-Coyote/1.1  <%--服务器名称-->

  Content-Encoding: gzip  <%--压缩编码格式-->

  Content-length: 80  <%-- 响应内容类型-->

  Content-Language: zh-cn  <%--指出响应的使用语言-->

  Content-Type: text/html; charset=GB2312  <%--客户端检查接收的内容代表哪种格式的数据类型  -->

  Expires: -1  <%-- 和下面两个共同组合使用,告诉客户端是否在客户端缓存网页-->

  Cache-Control: no-cache

  Pragma: no-cache

HTTP暂止于此,下次是复习Servlet技术~~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-09-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档