一、URL

1.基本介绍

URL的全称是Uniform Resource Locator(统一资源定位符)

通过1个URL,能找到互联网上唯一的1个资源

URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URL

2.URL中常见的协议

(1)HTTP

超文本传输协议,访问的是远程的网络资源,格式是http://       http协议是在网络开发中最常用的协议

(2)file

访问的是本地计算机上的资源,格式是file://(不用加主机地址)

(3)mailto

访问的是电子邮件地址,格式是mailto:

(4)FTP

访问的是共享主机的文件资源,格式是ftp://

二、HTTP协议

1.HTTP协议的作用

(1)规定客户端和服务器之间的数据传输格式

(2)让客户端和服务器能有效地进行数据沟通

2.为什么选择使用HTTP?

(1)简单快速  因为HTTP协议简单,所以HTTP服务器的程序规模小,因而通信速度很快

(2)灵活  HTTP允许传输任意类型的数据

(3)HTTP 0.9和1.0使用非持续连接  限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,即断开连接,可以节省传输时间

3.HTTP的通信过程

(1)请求:客户端向服务器索要数据

(2)响应:服务器返回客户端相应的数据

三、HTTP通信过程 - 请求和响应

1.HTTP通信过程 - 请求

HTTP协议规定:1个完整的由客户端发给服务器的HTTP请求中包含以下内容

请求行:包含了请求方法、请求资源路径、HTTP协议版本     GET /MJServer/resources/images/1.jpg HTTP/1.1

请求头:包含了对客户端的环境描述、客户端请求的主机地址等信息

             Host: 192.168.1.105:8080 // 客户端想访问的服务器主机地址

 

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0// 客户端的类型,客户端的软件环境

Accept: text/html, */*// 客户端所能接收的数据类型

Accept-Language:zh-cn // 客户端的语言环境

Accept-Encoding: gzip // 客户端支持的数据压缩格式

请求体:客户端发给服务器的具体数据,比如文件数据

2.HTTP通信过程 - 响应

客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端

HTTP协议规定:1个完整的HTTP响应中包含以下内容:

状态行:包含了HTTP协议版本、状态码、状态英文名称

HTTP/1.1 200 OK

响应头:

包含了对服务器的描述、对返回数据的描述

Server: Apache-Coyote /1.1 // 服务器的类型

Content-Type: image/jpeg // 返回数据的类型

Content-Length: 56811 // 返回数据的长度

Date: Mon, 23 Jun 2014 12:54:52 GMT // 响应的时间

实体内容:服务器返回给客户端的具体数据,比如文件数据

3.常见的响应状态码

四、发送HTTP请求的方法

1.简单说明

在HTTP/1.1协议中,定义了8种发送http请求的方法

GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH

根据HTTP协议的设计初衷,不同的方法对资源有不同的操作方式

PUT :增

DELETE :删

POST:改

GET:查

提示:最常用的是GET和POST(实际上GET和POST都能办到增删改查)

2.get和post请求   

GET和POST对比:GET和POST的主要区别表现在数据传递上

GET:在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如http://ww.test.com/login?

username=123&pwd=234&type=JSON

注意:由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB

POST:发给服务器的参数全部放在请求体中理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)

3.GET和POST的选择

选择GET和POST的建议

(1)如果要传递大量数据,比如文件上传,只能用POST请求

(2)GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST

(3)如果仅仅是索取数据(数据查询),建议使用GET

(4)如果是增加、修改、删除数据,建议使用POST

4.iOS中发送HTTP请求的方案

在iOS中,常见的发送HTTP请求(GET和POST)的解决方案有

(1)苹果原生(自带)

NSURLConnection:用法简单,最古老最经典最直接的一种方案

NSURLSession:iOS 7新出的技术,功能比NSURLConnection更加强大

CFNetwork:NSURL*的底层,纯C语言

(2)第三方框架

ASIHttpRequest:外号“HTTP终结者”,功能极其强大,可惜早已停止更新

AFNetworking:简单易用,提供了基本够用的常用功能

5.ASI和AFN架构对比

说明:AFN基于NSURL,ASI基于CFHTTP,ASI的性能更好一些。

URL与HTTP介绍的更多相关文章

  1. URI、URL、URN介绍

    注:1. 仅从http(Hypertext Transfer Portocol)角度阐述,不涉及语言层面的类库. 2. 以下内容均参考<Http权威指南>一书. 一.万维网构成       ...

  2. URL 与 URI 介绍

    URL: 统一资源定位符 ( Uniform Resource Locator ) URI: 统一资源标识符 ( Uniform Resource Identifier ) URL 地址:https: ...

  3. Django 2.0 URL新版配置介绍

    实例 先看一个例子: from django.urls import path from . import views urlpatterns = [ path('articles/2003/', v ...

  4. 012_Eclipse中使用 HDFS URL API 事例介绍

    本事例其实和使用hdfs FileSystem API差不多,FileSystem API也是通过解释成URL在hdfs上面执行的,性质相同,但是实际中用 的fFileSystem会多一点,源码如下: ...

  5. Redirect url 路径简单介绍

    问题:Response.redirect 用法asp 中 用response.redirect () 跳转到不同的页面是怎么写的,比如从index.asp跳到admin目录下的a.asp 还有从a跳回 ...

  6. URL和URI(简单介绍)

    URL与URI 我们经常接触到的就是URL了,它就是我们访问web的一个字符串地址,那么URI是什么呢?他们是什么关系呢? URL:uniform resource location 统一资源定位符U ...

  7. spring 3.0 应用springmvc 构造RESTful URL 详细讲解

    在线springmvc_rest demo 由于下一版本的rapid-framwork需要集成spring RESTful URL,所以研究了一下怎么搭建. 并碰到了一下问题. springmvc 3 ...

  8. Url路径重写的原理

    ASP.net的地址重写(URLRewriter)实现原理及代码示例 吴剑 2007-01-01 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 概述 访问 ...

  9. nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

    在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...

随机推荐

  1. Java -- 利用反射 操作任意数组,包括对象数组 和 基本数据类型的数组

    items为任意数组

  2. EJS基本用法

    1.引入 <script src="/src/ejs_production.js"></script> 2.模板 <script id="c ...

  3. Python3一些包的下载

    首先在windows的Python扩展包网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 这里举例下载opencv3.2.0的安装包 我的电脑是win10,6 ...

  4. Teamviewer_相关

    1.官网下载:https://www.teamviewer.com/zhcn/download/windows/,里面选择 "Portable"的版本来下载(按钮"下载P ...

  5. Python基本语法(一)

    注释及注意 #代表注释:冒号:结尾时,接下来的代码会自动缩进,一般为4个空格.Python程序是大小写敏感的. 数据类型和变量 在Python中能够直接处理的数据类型有以下几种: 整数 浮点数 字符串 ...

  6. iOS耗电量测试方法及其数据收集

    常用的电量测试方法: 硬件测试(硬件要求比较高,成本比较大,这里介绍软件测试方法) 软件工具检测 几个典型的耗电场景如下: 定位,尤其是调用GPS定位 网络传输,尤其是非Wifi环境 cpu频率 内存 ...

  7. 解决:Eclipse安装Pydev插件报错: An error occurred while collecting items to be installed session context was:(profile=...

    今天在Elipse上安装Pydev插件时报错: An error occurred while collecting items to be installed session context was ...

  8. nyojb 2357

    http://acm.nyist.me/JudgeOnline/problem.php?id=2357 2357: 插塔憋憋乐 时间限制: 1 Sec  内存限制: 128 MB提交: 50  解决: ...

  9. Beautifusoup

    text = soup.find('div', {'class': 'mulu'}) #查找目录,坑死我了.就这个东西,知乎上看别人写的爬取网络小说,这个最适合我.我一开始老是使用beautifuls ...

  10. MySQL 索引 视图 触发器 存储过程 函数

    1.索引 索引相当于图书的目录,可以帮助用户快速的找到需要的内容. 数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万 ...