zoukankan      html  css  js  c++  java
  • HTTP协议理解

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

    原创博客,欢迎讨论,转载请注明出处、链接
  • 相关阅读:
    ADO.NET 实体框架 资料收集
    sql server 根据执行计划查询耗时操作
    查看sql server数据库文件信息
    TypeScript
    使用mustache.js 模板引擎输出html
    C#委托多播、Lambda表达、多线程、任务
    PID控制器开发笔记之十三:单神经元PID控制器的实现
    C语言学习及应用笔记之五:C语言typedef关键字及其使用
    君子爱财
    PID控制器开发笔记之十二:模糊PID控制器的实现
  • 原文地址:https://www.cnblogs.com/hihao/p/5873574.html
Copyright © 2011-2022 走看看