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. 转-CMMI在中国之混乱-CMMI比ISO9000会更惨

    CMMI在中国之混乱-CMMI比ISO9000会更惨 自己接触CMM/CMMI已经有8年时间了,现在静心回顾一下,觉得CMMI在中国的命运会比ISO9000还悲惨. 一组现象或许让你我对此结论有更深入 ...

  2. SQL Server 执行计划

    当一个查询被提交时,发生了什么? 向SQL Server提交一个查询时,sever上的许多进程会在这个查询上开始工作. 这些进程的目标就是管理这个系统,使得这个查询可以选择,插入,更新,删除数据. 每 ...

  3. mongodb 新建用户 -摘自网络

    随着版本的更新,对在使用mongodb的业务也进行了版本升级,但是在drop掉一个数据库时,问题来了,原来的用户随着删除库也被删除掉,但是再想通过原来的语法db.addUser()添加,一直报错,提示 ...

  4. 【转】Maven实战(三)---插件动态打包

    原博文出于:http://blog.csdn.net/liutengteng130/article/details/41622013    感谢! maven把项目的构建划分为不同的生命周期(life ...

  5. [VS2012]无法新建或者编译已有的项目

    今天启动VS2012时,发现提示插件错误,然后打开以前的网站时,发现报错如下: ContractNameMicrosoft.VisualStudio.Utilities.IContentTypereg ...

  6. HDU 5665 Lucky (水题)

    Lucky 题目链接: http://acm.hust.edu.cn/vjudge/contest/123316#problem/G Description Chaos August likes to ...

  7. Spring SimpleJdbcTemplate Querying examples

    Here are few examples to show how to use SimpleJdbcTemplate query() methods to query or extract data ...

  8. 决定如何开发你的WordPress主题框架

    在本系列教程的第一部分,我介绍了不同类型的主题框架并解释了它们是如何工作的. 在你开始建立你的主题框架之前,你需要考虑它是如何工作的,以及它将会被用来做什么,这样你才能从一开始就找到最合适的开发途径. ...

  9. 在Mac OS X 10.9上安装nginx

    1. 安装PCRE Download latest PCRE. After download go to download directory from terminal. $ cd ~/Downlo ...

  10. JavaScript DOM对象和JQuery对象相互转换

    1.分析源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...