http协议简介

URL和URI

URL:全称是Uniform Resource Locator,中文是统一资源定位符,这里更强调定位,通过定位能够找到某个资源。是互联网上资源的地址,即平时所说的网址。
URI:全称是Uniform Resource Identifier,中文是统一资源标识符,可以标识唯一的资源(比如身份证号),对程序员来说主要用于标识网络资源名称(比如网址)。
两者从关系上来说URI是包含URL的

比如:http://www.monkey1024.com/javaweb/888

这个是一个网址,通过这个网址就能定位找到要打开的网页,所以他是URL。同时这个网址也是具有全球唯一性的,所以他也是URI。
对于身份证号来说,我们不能通过身份证号来定位某个人,因为这个人可能出去旅游了,没在家,所以这个不是URL。但是这个身份证号是具有唯一性的,所以他是URI。

网络资源的分类

  1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析
    • 如: html,css,JavaScript,图片
  2. 动态资源:每个用户访问相同资源后,得到的结果可能不一样,这样的资源被称为动态资源,例如我们登陆某个网站的时候,网站中显示的用户名对于不同的用户来说是不一样的。动态资源被访问后,需要先转换为静态资源,在返回给浏览器
    • 如:servlet/jsp,php,asp等

网络通信三要素

  1. IP:电子设备(计算机)在网络中的唯一标识。
  2. 端口:应用程序在计算机中的唯一标识。
  3. 传输协议:规定了数据传输的规则,如:
    • tcp:安全协议,三次握手。 速度稍慢
    • udp:不安全协议。 速度快

如果使用快递来表示上面三者的关系的话,如下:

ip:快递寄送的地址,XX省XX市XX小区

端口:小区中具体的房间号,3号楼1单元501房间

传输协议:顺丰快递,圆通快递,中通快递

HTTP协议

HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,可以传输HTML文件、图片等文件。用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式,基于TCP/IP的高级协议,特点如下:

  • 默认端口号:80,在使用的时候可以省略
  • 基于请求/响应模型的:一次请求对应一次响应。一问一答
  • 无状态的:每次请求之间相互独立,互不影响。好比是盲人按摩,对于盲人来说并不知道当前被按的人之前是否有来过。
http请求与响应

http请求与响应

请求部分

  • 请求消息行大写的请求方式、请求的URI、请求协议和版本号

    常见的请求方式有:

    • get
    • post
    • put
    • delete
    • head
    • trace
    • connect
    • options
  • 请求消息头存放的请求参数和值,键值对的方式,参数名:参数值
  • 请求空行一个空行,用来区分消息头和正文
  • 消息正文存放请求携带的参数和值,get方式的请求是没有的

请求报文

响应部分

  • 响应消息行包含协议、版本号、状态码、状态描述信息
  • 响应消息头存放响应参数和值,键值对的方式,参数名:参数值
  • 响应空行一个空行,用来区分响应头和响应正文
  • 响应正文响应形成的html内容

响应报文

上面的请求和响应中的内容,我们可以在chrome浏览器中使用f12查看,也可以借助第三方工具才能查看,例如使用Fiddler查看,fiddler下载地址:http://pan.baidu.com/s/1c2OuxyS

HTTP协议常见状态码

200 OK                        //客户端请求成功
400 Bad Request               //客户端请求有语法错误,不能被服务器所理解
403 Forbidden                 //服务器收到请求,但是拒绝提供服务
404 Not Found                 //请求资源不存在
500 Internal Server Error     //服务器发生不可预期的错误
503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复正常