HTTP协议
    7.1.什么是HTTP协议:
        HTTP协议是用来规定浏览器客户端和服务器通信的方式

7.2.基本原则
        基于请求响应模型
        一次请求对应一次响应
        请求只能由客户端发出, 服务器只能被动的等待请求, 做出回应
        
    7.3.http协议详解
        7.3.1.Http请求
            请求行
                GET /news3/1.html HTTP/1.1

GET:
                    提交方式, 一共有7种(GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE),其中5种不常用, 只用GET和POST提交

/news3/1.html:
                    请求资源的路径

HTTP/1.1:
                    1.0和1.1: 1.0版本的协议在每次通信结束后会立即断开客户端和服务器之间的连接(通道), 如果需要再次发送请求, 只能再建立新的连接
                    1.1版本的协议在每次通信结束后会将连接保持一段时间, 如果在这段时间内需要发送请求, 可以复用该连接.
            
            若干请求头
                Accept: text/html,image/*   
                    -- 通知服务器当前浏览器可以接受那些格式的数据
                Accept-Charset: ISO-8859-1  
                    -- 浏览器可以接受的字符集编码
                Accept-Encoding: gzip,compress
                    -- 浏览器可以接受的压缩格式
                Accept-Language: en-us,zh-cn  
                    -- 浏览器接受的语言环境,和国际化相关的头
                Host: www.tedu.cn:80  
                    --  需要访问的虚拟主机的名称
                !!Referer:
                    http://www.tedu.cn/index.jsp
                    -- 这是和防盗链相关的头,对当前资源的访问来自哪个页面的超链接
                User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
                    -- 客户端的基本信息
                !!Cookie
                    -- 和cookie相关的头
                Connection: close/Keep-Alive
                    -- 是否继续保持连接   
                Date: Fri, 17 Feb 2017 18:23:51 GMT
                    -- 当前发送请求的时间    
            
                (一个空行)
            请求实体内容
                xxxxxx

7.3.2.Http响应
            一个状态行
                HTTP/1.1 200 OK
                HTTP/1.1: Http协议的版本
                200: 状态码, 一个三位的数字(100~600) 表示服务器对请求处理的结果

常用的状态码:
                    200: 表示服务器成功的处理请求
                    302: 表示请求重定向
                    304: 表示通知浏览器使用缓存
                    307: 表示通知浏览器使用缓存
                    404: 表示资源找不到
      400: 表示请求参数不匹配(请求参数有问题)
                    500: 服务器内部出现错误
      505: 服务器不支持请求中的http版本,常用的是HTTP/1.1

OK: 描述信息
                
            若干响应头:
                !!Location: http://www.tedu.cn/index.jsp  
                    -- 配合302使用实现请求重定向
                Server:apache tomcat
                    -- 服务器的基本信息
                Content-Encoding: gzip  
                    -- 服务器发送的数据使用的压缩格式
                Content-Length: 80
                    -- 服务器发送的数据的大小
                Content-Language: zh-cn
                    --服务器发送的数据使用的语言环境 国际化相关的头
                !!!Content-Type: text/html; charset=GB2312
                    -- 服务器发送的数据是什么格式的,如果是字符格式的数据,则还可以通知服务器发送的数据使用的是什么编码,浏览器会根据这个头指定的编码决定使用哪个编码来打开收到的数据

!!Refresh: 1;url=http://www.tedu.cn
                    -- 定时刷新相关的头,通知浏览器,过几秒后自动刷新访问哪个地址
                Content-Disposition: attachment;filename=aaa.zip
                    -- 通知浏览器以附件的形式打开发送过去的数据,是和文件下载相关的头

!!!Set-Cookie:SS=Q0=5Lb_nQ; path=/search
                    -- 和Cookie相关的头
                !Expires: -1
                    -- 通知浏览器是否缓存
                !Cache-Control: no-cache  
                    -- 通知浏览器是否缓存
                Pragma: no-cache   
                    -- 通知浏览器是否缓存
                    --之所以一个功能有三个头,是因为历史原因.所以为了网页的兼容性考虑,通常这三个头要一起使用

Connection: close/Keep-Alive  
                    -- 是否保持连接
                Date: Fri, 17 Feb 2017 18:24:11 GMT  
                    -- 响应时的时间
            (一个空行)
            响应实体内容
                xxxxxx

HTTP 协议基本知识的更多相关文章

  1. 【RL-TCPnet网络教程】第41章 HTTP超文本传输协议基础知识

    第41章      HTTP超文本传输协议基础知识 本章节为大家讲解HTTP(HyperText Transfer Protocol,超文本传输协议),从本章节开始,正式进入嵌入式Web的设计和学习. ...

  2. 【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识

    第35章      FTP文件传输协议基础知识 本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作. (本章的知识点主要整理自网络) ...

  3. 【RL-TCPnet网络教程】第33章 SMTP简单邮件传输协议基础知识

    第33章      SMTP简单邮件传输协议基础知识 本章节为大家讲解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的基础知识,方便后面章节的实战操作. (本 ...

  4. 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识

    第25章      DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...

  5. 【RL-TCPnet网络教程】第16章 UDP用户数据报协议基础知识

    第16章      UDP用户数据报协议基础知识 本章节为大家讲解UDP(User Datagram Protocol,用户数据报协议),需要大家对UDP有个基础的认识,方便后面章节UDP实战操作. ...

  6. 开发者应该掌握 WebSocekt 协议的知识

    文章介绍 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它的出现使客户端和服务器之间的数据交换变得更加简单.WebSocket 通常被应用在实时性要求较高的场景,例如赛事数据. ...

  7. IOS Socket 01-网络协议基础知识

    1. 网络参考模型 OSI参考模型                                          TCP/IP参考模型 2. 七层简述 1)物理层:主要定义物理设备标准,如网线的接 ...

  8. USB协议[转]_基本上涵盖了所有最基础的USB协议相关知识。

    背景: 需要使用到USB协议,我一直尝试着去强记这个流程,现在看来,其实不用.看多了,把这个过程具象出来,就牢牢记住了. 正文: 正文转自:http://fangjian0518.blog.163.c ...

  9. TCP/IP 和HTTP 协议基础知识

    来源:http://www.myhack58.com/Article/60/63/2014/50072.htm 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过 ...

  10. TCP/IP网络协议基础知识集锦[转]

    引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以 ...

随机推荐

  1. can be found for element 'tx:annotation-driven'

    错误描述: ERROR [ContainerBackgroundProcessor[StandardEngine[Catalina]]] (ContextLoader.java:308) - Cont ...

  2. 【bzoj3653】谈笑风生 DFS序+树状数组

    题目描述 给出一棵以1为根的有根树,q次询问,每次询问给出a和k,求点对 (b,c) 的数目,满足:a.b.c互不相同,b与a距离不超过k,且a和b都是c的祖先. 输入 输入文件的第一行含有两个正整数 ...

  3. 做一个iframe的弹出框

    群里有个人想在微信页面里面加弹出框.作为前端的我,想着不可能这样做.后来一个人说了: A:如果对方没有防盗链的话,你可以建个页面,内置iframe 到他的页面,然后把url 的参数也传入你的ifram ...

  4. 【题解】NOIP2016愤怒的小鸟

    一眼n<=18状压dp……方程什么的都很显然,枚举两只小鸟,再将这条抛物线上的小鸟抓出来就好啦.只是这样O(n^3)的dp必然是要TLE的,我一开始这样交上去显然跑得巨慢无比,后来转念一想:面对 ...

  5. 洛谷 P2414 [NOI2011]阿狸的打字机 解题报告

    P2414 [NOI2011]阿狸的打字机 题目背景 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机. 题目描述 打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母 ...

  6. JavaScript的相等(==)与全等(===)

    有段代码如下: view source   print? 1 if (![] == []) { 2     //Code 3 } ![] == [],true or false? 我们都知道,ECMA ...

  7. Asp.net MVC Combres的简单用法

    第一步:添加nuget包 [1]添加 nuget包后,会自动在 webconfig里面 添加配置文件(不用改) <section name="dotless" type=&q ...

  8. HNOI2002 营业额统计 [Splay]

    题目描述 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是 ...

  9. Wpremig和Jhadgre的藏宝图(最大流+二分)

    Wpremig和Jhadgre的藏宝图 题目链接:https://ac.nowcoder.com/acm/contest/333/M Description: Jhadgre在生日那天收到了一张神秘的 ...

  10. angularjs的验证信息的写法

    <div ng-messages="alarmDelayForm.alarmRuleName.$error" role="alert"> <d ...