一、先看一张图:

二、要client与sever能沟通

1.需要一样的规则,遵循一定的规范-----------协议

好比:不同国家的人,需要一门通用的语言。

2.谈到协议------http-------为什么要学的是http协议,而不是其他的:因为BS架构中,它是一个标准协议。

3.http是如何通信的:(4个步骤)

(1).浏览器,根据IP地址和端口号(主机域名)与服务器,建立连接。

【好比:A要给B发邮件,A需要知道了B的邮箱地址啊】

(2)向web服务器发送请求数据包

【好比:A给B发的邮件的内容】

(3).web接受请求,并发送相应的响应数据包

【好比:B收到A的邮件,B做出回应,比如给A回复邮件】

(4)浏览器收到响应以后,服务器关闭连接

(注意:每一次访问都是独立的,而且服务器不会记忆上一次是那个客户端请求的。)

【好比:B回复以后就删除了A发来的邮件,并关闭邮箱】

4.谈到通信的步骤àURL------发请求------响应请求

(一)

(1)URL: UniformResourceLocator(统一资源定位符),网页地址。

URL的格式:http://host[“:”port][abs_path]   https://host[“:”port][abs_path]

(2) URI:Uniform Resource Identifier(标识、定位任何资源的字符串)

(二) 发请求

请求数据包包括(4部分):请请求行,消息报头,空行,请求内容。

请求行:

格式: Method Request-URI HTTP-Version (空格分开)

Method表示请求方法

Request-URI是一个统一资源标识符

HTTP-Version表示请求的HTTP协议版本

(1)   Method请求方法有多种:

GET:  常用。

在浏览器的地址栏中输入网址的方式访问网页。

安全系数低。

POST:常用于表单的提交,用于登陆注册界面。

该方法要求被请求服务器接受附在请求后面的数据。

比如:www.baidu.com/?name=ouyang&age=18[o1]

相对安全。

HEAD: 与GET方法几乎是一样的

(HEAD请求的回应部分的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。)

常用于测试超链接的有效性,是否可以访问,以及最近是否更新。

(三) 响应请求

1.在接收和解释请求消息后,服务器返回一个HTTP响应消息

2.HTTP响应也是由四个部分组成,分别是:状态行、消息报头、空行、响应内容

状态行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

例子:HTTP/1.1  200  OK (CRLF)

**:

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

200代表 客户端请求成功

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

400 Bad Request  客户端请求有语法错误,不能被服务器所理解

401 Unauthorized 请求未经授权

403 Forbidden  服务器收到请求,但是拒绝提供服务

404 Not Found  请求资源不存在

5xx:服务器端错误--服务器未能实现合法的请求

503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常


[o1]

第一个参数用“?”

第一个参数用“&”

谈谈你对http的理解的更多相关文章

  1. 谈谈嵌套for循环的理解

    谈谈嵌套for循环的理解     说for的嵌套,先说一下一个for循环的是怎么用的.      这次的目的是为了用for循环输出一个乘法口诀表,一下就是我的一步步理解.    一.   语法:   ...

  2. JVM(一),谈谈你对java的理解

    一.谈谈你对java的理解 1.Java特性 (1)平台无关性 一次编译到处运行 (2)GC 垃圾回收机制 (3)语言特性 泛型-反射机制-lambda表达式 (4)面向对象 面向对象语言-三大特性( ...

  3. 【面试普通人VS高手系列】谈谈你对AQS的理解

    AQS是AbstractQueuedSynchronizer的简称,是并发编程中比较核心的组件. 在很多大厂的面试中,面试官对于并发编程的考核要求相对较高,简单来说,如果你不懂并发编程,那么你很难通过 ...

  4. 【Java面试】面试遇到宽泛的问题,这么回答就稳了,谈谈你对Redis的理解

    "谈谈你对Redis的理解"! 面试的时候遇到这类比较宽泛的问题,是不是很抓狂? 是不是不知道从何开始说起? 没关系,今天我用3分钟教你怎么回答. 大家好,我是Mic,一个工作了1 ...

  5. 谈谈对Spring IOC的理解(转)

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  6. 谈谈对Spring IOC的理解

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  7. Spring系列之谈谈对Spring IOC的理解

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IOC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  8. 谈谈对Spring IOC的理解【转】

    学习过Spring框架的人 一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大 ...

  9. 谈谈对Spring IOC的理解(转载)

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  10. 《Java核心技术36讲》阅读笔记:谈谈对Java平台的理解笔记

    1. 谈谈你对Java平台的理解. Java是一种面向对象的语言,最显著的特性有两个方面: 一个就是一次编译,到处运行(Write once, run anywhere),能够非常容易的获得跨平台能力 ...

随机推荐

  1. selenium+python笔记3

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc:学习unittest的用法 注意setUp/setUpCl ...

  2. 6/3 Sprint2 看板和燃尽图

  3. HDUOJ 2672---god is a girl 《斐波那契数》

    god is a girl Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  4. log4j配置文件的详解

    1.配置根Logger,其语法为: log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中,level 是日志记录的优先级,分为 ...

  5. Asp.net 解析json

    Asp.net Json数据解析的一种思路 http://www.cnblogs.com/scy251147/p/3317366.html http://tools.wx6.org/json2csha ...

  6. html5的标签

    1.article与section div的区别 当一个标签只是为了样式化或者方便脚本使用时,应该使用 div . section 表示一段专题性的内容,一般会带有标题.,section 应用的典型场 ...

  7. Java List的深度克隆

    关于java List的深度克隆 List是java容器中最常用的顺序存储数据结构之一.有些时候我们将一组数据取出放到一个List对象中,但是可能会很多处程序要读取他或者是修改他.尤其是并发处理的话, ...

  8. js使用正则表达式

    参考慕课网示例: 使用js对html输入框内容进行校验: 1. 只能输入5-20个字符,必须以“字母”开头 2. 可以带“数字" “_” “.”的字串 <!DOCTYPE html P ...

  9. oracle遇到死锁杀进程

    java程序操作数据库的时候,遇到死锁:java.sql.SQLException: ORA-00060: 等待资源时检测到死锁 解决步骤: 1.找到死锁的oralce对象(表): select ob ...

  10. ComboBox绑定

    this.ComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; this.ComboBox1.AutoCompleteSource ...