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技术~~

HTTP协议理解的更多相关文章

  1. IIC协议理解(转)

    目录 IIC协议理解(转) 个人小结记录 (记一下这个就够了) 以下为转载记录 概述 概述 输出级 主设备与从设备 速率 时序 空闲状态 起始位与停止位 数据的有效性 数据的传送 工作过程 主设备向从 ...

  2. TCP/IP协议理解

    TCP/IP协议理解 一.    协议分层 由于ISO标准中的网络模型是个7层模型,但是由于7层模型对于当时的网络厂商来说太过复杂,很多厂家采用了简化的4层模型来实现网络设备,4层模型也就成了事实的网 ...

  3. HTTP协议理解与应用总结

    总结了自己在实际工作场景中遇到的与http协议相关的一些内容的理解. Request & Response Request格式 <request-line> 比如:GET /api ...

  4. NEC红外遥控协议理解与实现

    红外发射管有2个管脚,发送的是经过38KHz时钟调制过的信号.例如下图使用PWM产生一个等占空时钟信号用于调制. 接收管收下来的信号已经经过了解调,可以直接连接系统的外部中断脚. 下面通过逻辑分析仪来 ...

  5. 从GO内存模型与调用协议理解defer closure的坑

    资料参考: 官网defer介绍: https://blog.golang.org/defer-panic-and-recover 深入解析go: 多值返回: https://tiancaiamao.g ...

  6. TCP协议理解

    一.前言: TCP协议和UDP协议是网络编程里最重要的协议,很多新出的技术.新出的协议本质上都是基于这两个协议的,其中又以TCP协议居多:比如HTTP协议就是基于TCP协议的,应用程序和数据库交互也是 ...

  7. 爬虫基础---HTTP协议理解、网页的基础知识、爬虫的基本原理

    一.HTTP协议的理解 URL和URI 在学习HTTP之前我们需要了解一下URL.URI(精确的说明某资源的位置以及如果去访问它) URL:Universal Resource Locator 统一资 ...

  8. Mavlink协议理解

    来源:blog.csdn.net/super_mice/article/details/44836585 之前看了mavlink协议,网上关于mavlink的资料不多.本文大概总结了下对mavlink ...

  9. Mavlink 协议 理解

    来源:blog.csdn.net/super_mice/article/details/44836585 之前看了mavlink协议,网上关于mavlink的资料不多.本文大概总结了下对mavlink ...

随机推荐

  1. Hold住:坚持的智慧

    这类励志的书读完时,感觉很激励人,可读完后总觉得空空的.同样这本书读完后没特别的感觉(也许书中的思想已影响了我,只是目前还说不太清楚),只感觉有些句子很有感觉,做个汇总: 1.      荀子有言:“ ...

  2. node-mysql中的连接池代码学习

    node-mysql是一个node.js下的mysql驱动,前段时间在处理连接池的问题上遇到了连接不释放的疑难杂症,虽已解决,但仍需总结经验避免下次重蹈覆辙.下面是node-mysql中的连接池的部分 ...

  3. 优秀android开源项目与解决方案推荐

    后来加上的,因为太强大了,android上百个可立即使用的开源库介绍:https://github.com/Trinea/android-open-project Android上的FTP服务器  S ...

  4. 第二百八十七天 how can I 坚持

    终于把假请下来了,没有想象的那么复杂. 忘退车票了.明天应该有手续费了,现在又维护了,哎.10%的手续费了.7块钱,没了.希望不会白回去一趟啊. sql,group by  having .还是学不会 ...

  5. Laravel Controllers

    Basic Controllers Instead of defining all of your route-level logic in a single routes.php file, you ...

  6. 分析nginx access log日志的命令

    统计访问最多的ip 1. tail -n 10000 xxaccess_log | cut -d " " -f 1 |sort|uniq -c|sort -rn|head -10 ...

  7. Spring 使用注解方式进行事物管理

    大家在使用spring的注解式事务管理时,对事务的传播行为和隔离级别可能有点不知所措,下边就详细的介绍下以备方便查阅. 事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都 ...

  8. lib 和 dll 的区别、生成以及使用详解

    首先介绍一下静态库(静态链接库).动态库(动态链接库)的概念,首先两者都是代码共享的方式. 静态库:在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态库,其特点是可 ...

  9. 12 为何使用Html5+CSS3

    一:大多浏览器支持,低版本也没问题 我看点这方面的资料,是为了做手机应用网站(有三个方案,这个是备用方案),可以开发响应式网站,可以脱离开发平台进行跨平台. 在Html5网页中引入Modernizr, ...

  10. SuperSlidev2.1 轮播图片和无缝滚动

    使用方法,狠狠的点击下面链接 http://down.admin5.com/demo/code_pop/18/562/index.html 简单使用方法如下 html <div class=&q ...