Contents
  1. 1. 网络传输协议
    1. 1.1. 常见的协议
    2. 1.2. HTTP协议
      1. 1.2.1. 1.请求/请求报文
      2. 1.2.2. 2.响应/响应报文
      3. 1.2.3. get请求个post请求的区别
      4. 1.2.4. 调试工具

网络传输协议

指服务器和客户端间进行通信时的约束和规范,客户端与服务端的数据交互并不是杂乱无章的,需要遵照(基于)一定的规范进行。

常见的协议

  • HTTP、HTTPS 超文本传输协议
  • FTP 文件传输协议
  • SMTP 简单邮件传输协议

HTTP协议

即超文本传输协议,网站是基于HTTP协议的,例如网站的图片、CSS、JS等都是基于HTTP协议进行传输的。
HTTP协议是由从客户机到服务器的 请求(Request)和从服务器到客户机的 响应(Response)进行了约束和规范。
即HTTP协议主要由请求和响应构成。

1.请求/请求报文

code block:
请求首行:GET /day08/code/01PHP/01demo.html HTTP/1.1
请求头(知道请求空行都是): Host: 127.0.0.1
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36(浏览器内核等)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8 //接收
Referer: http://127.0.0.1/day08/code/01PHP///当前的请求来自于那个页面.
1:用来做广告流量统计
2:防盗链
Accept-Encoding: gzip, deflate, sdch//告诉服务器我这边接收的一个数据压缩格式.
Accept-Language: zh-CN,zh;q=0.8 //接受的语言格式.
请求空行 (这边有一行空的)
请求体:就是数据(get没有请求体只有post有)

2.响应/响应报文

结构跟上面的是一样的。
这个是响应头:
Date: Wed, 21 Sep 2016 02:34:52 GMT//告诉客户端浏览器我服务器的版本
Server: Apache/2.2.21 (Win32) PHP/5.3.10
Last-Modified: Wed, 21 Sep 2016 01:28:05 GMT // 最后一次修改的事件
ETag: "b00000000003b-d4-53cfa74f54144"   //有服务器生成的唯一标识
Accept-Ranges: bytes
Content-Length: 212 //数据的长度
//Content-Type:告诉客户端浏览器我给你的数据的类型
Content-Type: text/html//我告诉客户端浏览器我是一个文本,html

Content-Type:响应资源的MIME类型
MIME是标识文件类型的,文件后缀并不能正确无误的标识文件的类型。
思考?客户端与服务器间传递数据时,是以什么形式传输的?
客户端与服务器在进行数据传输的时候都是以字节形式进行的,咱们可以理解成是以文本形式传输,这时浏览器就需要明确知道该怎么样来解析这些文本形式的数据,MIME就是明确告知浏览器该如何来处理。

常见的有200代表成功、304文档未修改、403没有权限、404未找到、500服务器错误

get请求个post请求的区别

  • get 提交没有请求体,
  • get 提交发送到服务器端的请求的数据都在地址栏当中
  • 不安全,因为get 提交发送到服务器的数据都在地址栏当中
  • 所以请求发送的数据的大小有限制.

  • post 有请求体,请求体的数据就是客户端发送到服务端的内容的参数数据.

  • post 提交的数据都在请求体当中,相对来说安全
  • post 提交对发送到服务器端的数据大小没有限制
  • post 提交必须有一个请求头
    Content-Type:application/x-www-form-urlencoded
    以后假设表单提交,如果说要发送中文,最好我们都使用post

调试工具

利用HTTP抓包工具在开发中可以帮我们进行调试,常用抓包工具HttpWatch、Fiddler、Charles、FireBug等
浏览器插件
Firebug、HttpWatch、chrome dev tools
代理软件
Charles、Fiddler

Contents
  1. 1. 网络传输协议
    1. 1.1. 常见的协议
    2. 1.2. HTTP协议
      1. 1.2.1. 1.请求/请求报文
      2. 1.2.2. 2.响应/响应报文
      3. 1.2.3. get请求个post请求的区别
      4. 1.2.4. 调试工具