HTTP协议基本知识

Xcode7.0以上版本必须操作:https http

  1. 在Info.plist中添加NSAppTransportSecurity类型Dictionary。
  2. 在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES

HTTP协议

1. HTTP协议

HyperText Transfer Protocol 超文本传输协议。设计HTTP的最初目的是为了提供一种发布和接收HTML页面的方法。

是一个客户端和服务端请求和应答的标准。客户端发送一个到服务器上指定端口(默认端口是80)的HTTP请求,服务器在指定端口上监听客户端发送过来的请求,一旦收到,则向客户端发回一个状态行和消息(即客户端请求的资源)。客户端在收到资源(超文本)后,通过某些程序(浏览器),解析数据后才能够展示。

通过HTTP/HTTPS 协议请求的资源由统一资源标识符(Uniform Resource Identifiers)来标识,即URI。

格式:http://ip(地址,域名):端口/路径/index.php?参数列表,参数列表中每个参数用&符号隔开,参数都是key = value

在浏览器的地址栏里输入的网站地址叫做URL(Uniform Resource Locator,统一资源定位符),可以理解为门牌地址。

两者都可以确定要访问的资源在服务器上的位置。

URL 是URI的子集。

[扩展说明]

计算机的网络体系结构分以下7层:

- 数据的传输自底向上,各层均遵循不同的协议。其中,HTTP协议,及下方的HTTPS协议在应用层。

- HTTPS:  应用层协议,HyperText Transfer Protocol over Secure Socket Layer, 是以安全为目标的HTTP通道,可以说是HTTP的安全版。在HTTP下加入SSL层,用来将传输的内容加密。SSL的继任者是TLS(提供了数据加密及完整性的协议)。

与HTTP区别:

-- HTTPS 需要到CA申请证书,一般需要交费。此证书用于服务端,证明服务端用途类型,证书只有用于其对应的服务器时,客户端才信任此主机,例如银行系统网站。12306 开发者账号 https://developer.apple.com

-- HTTP是明文传输, HTTPS则是具有安全性的SSL加密传输,身份认证的。

-- 二者连接方式不同,默认端口也不一样,HTTP 是80, HTTPS 是443。

- TCP/UDP: 传输层协议(Transmission Control Protocol, 传输控制协议)即时通讯Socket XMPP

[Socket 是对TCP/IP协议的封装和应用,通过它,才能使用TCP/IP协议。] XMPP

- IP: 网络层协议 (Internet Protocol, 网络协议)

即时通讯技术:Socket 或XMPP

总:TCP/IP 是传输数据,解决数据如何在网络中传输,而HTTP 是解决如何包装数据,使传输的数据有意义。

2. HTTP请求/响应

>HTTP请求:

当客户端向服务器发出请求时,它向服务器传递了一个数据包NSData  0101,即请求信息,包括以下内容:

- 请求方法,URI, 协议 URL:http://ip地址或域名www.baidu.com:80(端口)/路径 ?参数列表(username=qidalin&password=123456&id=123)  Get请求方法

- 请求头(Request Header)

- 请求正文

例如:

/* 请求方法/URI / 协议和协议版本 */

GET/sample.jspHTTP/1.1

/* 请求头 */

Accept:image/gif.image/jpeg,*/*       // 指定客户端接收的内容类型

Accept-Language:zh-cn                   // 浏览器可接受

Connection:Keep-Alive                     // 是否需要持久连接

Host:localhost                                 //  指定请求的服务器的域名和端口号

User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)  // 包含发出请求的客户端信息

Accept-Encoding:gzip,deflate            //  客户端可以支持的服务器返回内容压缩编码类型

……

其他见“/http请求头

/* 请求正文,可包含客户端提交的查询字符串信息 */

type = 123

> HTTP响应

与请求类似,由以下组成:

- 协议版本 / 状态码

- 响应头 (Response Header)

- 响应正文

例如:

/* 协议版本 / 状态码 */

HTTP/1.1 200 OK

/* 响应头 */

Server:TWS

Date:Tue, 19 Jan 2016 07:22:55 GMT

Content-Type:application/json;charset=UTF-8

…..

其他见”/http响应头

/* 响应正文 */

{"resultMsg":"Comments are lesson than 10","data":null,"isSuccess":false}

3. HTTP 请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。例如:HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet应用中,最常用的方法是GET和POST。

GET方法

是默认的HTTP请求方法,平常也用GET方式提交表单数据,但这种方式下对表单数据只经过简单变码,同时作为URL的一部分向服务器发送,有一定的安全隐患。

例如:http:// www.xxx.com/login.jsp?username=xiao&password=12345678

从这个请求上很容易可辨认提交的内容(?之后的),而且此种方式是拼接URL串,若传输内容较多时,会使得URL很长,而URL长度是有限制的,超出的部分不会被发送。2k

POST方法

主要用于向服务器提交表单数据,尤其是大批量数据。此方式下,数据不是作为URL的一部分而是作为标准数据传送给服务器。

POST方法克服了GET方法中信息无法保密和数据量小的缺点。出于安全考虑,表单提交一般采用POST方式。

4. HTTP状态码/应答码

是用以表示服务器http响应状态的3位数字代码。

所有状态码的第一个数字代表了五种状态之一。

常用状态码如下:

- 2字头 成功

200 OK : 成功

- 3字头 重定向

300 Multiple Choices : 重定向

- 4字头 请求错误

400 Bad Request : 错误的请求

401  Unauthorized : 未授权

403  Forbidden : 禁止访问

404 Not Found : 未找到

- 5,6字头 服务器错误

500 Internal Server Error :  内部服务器错误

时间: 04-23

HTTP协议基本知识的相关文章

http协议原理知识

HTTP(Hyper Text Transfer Protocol,超文本传输协议) HTTP协议是应用层的一种协议,是一种C/S架构服务,基于TCP/IP协议来通信,监听在TCP的80端口上.下面就开始介绍HTTP协议的相关内容,在开始之前先简单的介绍一下端口类型.TCP协议的功能和状态.Socket通信时的系统调用. 一.常见的端口类型 众所周知: 0~1023:管理员才有权限使用,永久地分配给某应用使用. 注册端口: 1024~41951:只有一部分被注册,分配原则上非特别严格. 动态端口

【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识

第35章      FTP文件传输协议基础知识 本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作. (本章的知识点主要整理自网络) 35.1  初学者重要提示 35.2  FTP基础知识参考资料 35.3  FTP基础知识点 35.4  总结 35.1  初学者重要提示 FTP文件传输协议在实际项目中有比较重要的实用价值,需要初学者对FTP的基础知识也有个认识. 35.2  FTP基础知识参考资料 大家可以从以下地址获得FTP

TCP/IP网络协议基础知识集锦[转]

引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以存在OSI互联参考模型主要有以下几点好处: 1.用于解决不同厂商的设备互联问题:即兼容性考虑; 2.层次化结构独立性强;可扩展性强; 3.统一标准可以方便学习; TCP/IP模型 TCP/IP模型与OSI模型的相互关系如下图所示: 注释 1.应用层:与OSI的应用层.表示层.会话层相对应,主要作用是

IOS Socket 01-网络协议基础知识

1. 网络参考模型 OSI参考模型                                          TCP/IP参考模型 2. 七层简述 1)物理层:主要定义物理设备标准,如网线的接口类型.各种传输介质的传输速率等.主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的地后再转化为1.0,也就是常说的数模与模数转换).这一层的数据叫做比特(bit),主要设备:集线器 2)数据链路层:主要将从物理层接收的数据进行MAC地址的封装与解封装.常把这一层的数据叫做帧,主要

http 协议 相关知识 --请求

一:什么是http协议: http协议: 对浏览器客户端 和  服务器端 之间数据传输的格式规范 二:查看http协议的工具 1)使用火狐的firebug插件(右键->firebug->网络) 2)使用谷歌的“审查元素” 3)使用系统自带的telnet工具(远程访问工具) a)telnet localhost 8080      访问tomcat服务器 b)ctrl+]     回车          可以看到回显 c)输入请求内容 GET /day09/hello HTTP/1.1 Host

http协议相关知识

HTTP一个属于应用层的面相对象的协议,简单快捷,适用于分布式超媒体信息系统. 目前www使用的版本是1.0的第六版 http特点: 1:支持客户/服务器模式 2:简单快捷.客户想服务器发送请求,只需要传送请求方法和路径.请求的方法有get post head 3:灵活:http允许传输任意类型的数据对象. 4:无连接.无连接的含义是限制每次链接至处理一个请求.服务器处理完客户的请求,并受到客户的应答之后即断开链接.采用这种方式可以节省传输时间. 5:无状态.http协议是无状态协议.无状态是指

Http协议的知识浅解

Http协议概念: 规定被约束的对象需要遵守的规则!!! Http 协议Http协议:超文本传输协议(Http:HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.HTTP协议的特点: * Http 协议遵守一个请求响应模式.(request, response). * 请求和相应必须成对出现. *必须现有请求后有响应.HTTP 协议默认的端口: 80 Http协议的请求部分 客户端向服务器发送的数据格式:GET方式的

HTTP 协议基本知识

HTTP协议    7.1.什么是HTTP协议:        HTTP协议是用来规定浏览器客户端和服务器通信的方式 7.2.基本原则        基于请求响应模型        一次请求对应一次响应        请求只能由客户端发出, 服务器只能被动的等待请求, 做出回应            7.3.http协议详解        7.3.1.Http请求            请求行                GET /news3/1.html HTTP/1.1 GET:     

http协议基础知识

1.http-url: 协议,主机号:一台服务器的ip地址:端口号:主机上面的程序号,一般默认80,许多浏览器省略不显示:路径:工作路径的目录 url请求: 访问主机号为123.207.58.25这台主机下面的80号服务下的根目录下的a目录下的c.php资源,并且提交的数据是a=100和b=20,大多数浏览器的url中间?隔开的是我们要提交的数据并且使用&来区分各个数据.提交的数据一直采用name=value的形式. 2.http-请求 对于一个网址,https://123.207.58.25: