一、http协议的基础知识(请求方法、状态码、响应头信息、协议的URL)

1、请求方法:

 (1) http1.0请求包含 head、get、post

 (2)http1.1请求包含head、get、post、options、put、delete、trace、connect

 (3)get请求的标准格式是:<路径>【?<arg1>=<value1>[&<arg2>=<value2>....]】,例如http://ceshi.com/get.php?arg1=value1;get请求可以只有请求的路径:http://www.baidu.com;也可以不包含Content-Length;也可以带需要传递的数据,在访问路径后带?参数=值的方式发送;服务器端的响应也是使用相应的函数来进行响应。get可以理解为查询select,不会对数据进行任何的修改,新增,删除等操作。get请求会把请求的参数附加在URL后面,这样是不安全的。

 (4)post,post请求是包含数据,请求数据的格式主要有:

    表单格式:application/x-www-form-urlencoded:表单方式与GET方式类似,只是把数据放在头文件下面的请求正文区域。
    混合格式:multipart/form-data:混合模式一般是用来传输文件。后面会跟boundary=__xxxx__来进行每个参数的分割。表单中把type类型改为file就可以上传文件。<input type="file" name= "file" id= "file" />。
    JSON格式:application/json  :常见类型为json,xml,plain
    XML格式:text/xml     :常见类型为json,xml,plain
    文本:text/plain  :常见类型为json,xml,plain,这种类型的数据,需要服务端代码自行解析。
  (5)head,head返回内容基本于post,get基本一致,不返回数据部分。
 

2、请求的组成:

  由请求行、消息报头、请求正文组成

  (1)请求行以方法符号开头,空格隔开,后面跟着请求的URL和协议版本,例如:Method Requst-URL http-Version(CR)(LF)

  (2)消息包头允许客户端向服务器传递请求的附加信息以及客户端自身的信息。常用的报头有 accept,acceptcharset,Accept-Encoding,Accept-Langvage,Authorization,Host(发送请求是,host是必须的),User-agent

3、响应码:

  这里可以自行查网络上的信息,基本的就是2xx是响应成功;3xx是找到资源,重定向;4xx是未找到资源;5xx是服务器没响应。

4、常用标准响应字段

  access:服务器支持那些请求方法,get,post

  connection:当client和server通信时对于长链接如何进行处理,有keep-alive和close

  content-Encoding:文档的编码方法

  content-Length:表示内容长度

  content-Type:表示后面的文档属于什么MIMe类型

  Date:当前的GMT。

  Expries:应该在什么时候认为文档已经过期,从而不在缓存它

  Last-Modified:文档的最后改动时间。

  Location:表示客户莹当到哪里去提取文档

  Refresh:表示浏览器应该在多少时间之后刷新文档,以妙记

  server:服务器的名字

  set-Cookie:设置和页面关联的cookie

5、什么是URL

  URL是统一资源定位符,是互联网上标准资源的地址

  URL包含:协议、用户名:密码、主机-子域名.顶级域名、端口号、目录/文件名.文件后缀、参数=值、标志

  URL格式:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志

http://v.weixiaov.wang:80/wx6/php/check.php?args=

  相对URL,/目录/文件名.文件后缀?参数=值#标志

  URL编码格式为16进制的,只有数字和大小写字母,以及一些特殊符号$,-,_,. +!* ' () 以及某些保留字,才能不经过编码直接用于URL。

  

CISP_PTE学习的更多相关文章

  1. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  2. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  3. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  4. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

  7. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  8. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  9. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  10. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

随机推荐

  1. kettle连接mysql报Communications link failure

    添加2个命名参数 1.autoReconnect=true 2.useSSL=false

  2. idea的tomcat控制台输出乱码

    tomcat乱码问题 idea的tomcat控制台输出乱码 找到自己的安装目录 用vscode打开 ctrl+f打开搜索 输入encoding 最后一个是用来给idea中的控制台输出 --->改 ...

  3. DB help

    using Dapper; using System; using System.Collections; using System.Collections.Generic; using System ...

  4. CentOS7 安裝DHCP服務並啟用DHCP failover

    1. 安裝dhcp服務 yum install -y dhcp 2. host1 vi /etc/dhcp/dhcpd.failover failover peer "dhcpfailove ...

  5. git 更改子项目索引

    git update-index --cacheinfo 160000 97ed2f63b07c73bad9a4d55e96e25292 source/lvdao/crf-sdk git reset ...

  6. CH573 CH582 CH579蓝牙从机(peripheral)例程讲解四(蓝牙动态广播)

    动态广播有两种实现方式: 1.关闭广播,更改广播包数据,等待关闭上报状态后,开启广播. uint8_t initial_advertising_enable = FALSE; GAPRole_SetP ...

  7. Conda 创建、激活、克隆、删除虚拟环境 - 搬运

    Conda 创建.激活.克隆.删除虚拟环境 转自 :https://zhuanlan.zhihu.com/p/547724114 风影忍着   通常来说,对于每一个新的项目,我们都需要创建一个新的环境 ...

  8. git clone的时候出现 fatal: unable to access 'https://github.com/...':OpenSSL SSL_read: Connection was reset, errno 10054解决方法

    git clone的时候出现fatal: unable to access 'https://github.com/...':OpenSSL SSL_read: Connection was rese ...

  9. 开源规则引擎——ice:致力于解决灵活繁复的硬编码问题

    背景介绍 业务中是否写了大量的 if-else?是否受够了这些 if-else 还要经常变动? 业务中是否做了大量抽象,发现新的业务场景还是用不上? 是否各种调研规则引擎,发现不是太重就是接入或维护太 ...

  10. 基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)

    摘要:农作物叶片病害检测系统用于智能检测常见农作物叶片病害情况,自动化标注.记录和保存病害位置和类型,辅助作物病害防治以增加产值.本文详细介绍基于YOLOv5深度学习模型的农作物叶片病害检测系统,在介 ...