1 http都设置哪些header?

http协议规定:一个完整的客户端发送给服务端的HTTP请求包括:

(1)请求行:包括了请求方法、请求资源路径、HTTP协议版本,eg:GET/Server/image HTTP/1.1

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

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

User-Agent:Mozilla/5.0 Firefox/3.0 (客户端的类型、客户端的软件环境)

content-Type:文件类型

content-Length:文件长度

[request setValue:@"" forHTTPHeaderField:@""];

(3)请求体:客户端发给服务器的具体数据。

1 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    // 响应的时间

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

状态码

英文名称

中文描述

200

OK

请求成功

400

Bad Request

客户端请求的语法错误,服务器无法解析

404

Not Found

服务器无法根据客户端的请求找到资源

500

Internal Server Error

服务器内部错误,无法完成请求

2 http与https区别?

http是HTTP协议运行在TCP之上。所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。

https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份。

https协议需要到ca申请证书,一般免费证书很少,需要交费。

http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议

http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。

http的连接很简单,是无状态的

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。

3 TCP的连接(三次握手)和释放(四次挥手)

TCP的连接(三次握手):

第一次握手:客户机的 TCP 首先向服务器的 TCP 发送一个连接请求报文段。这个特殊的报文段中不含应用层数据,其首部 SYN 标志置为1。另外,客户机会随机选择一个起始序号seq=x(连接请求报文不携带数据,但要消耗掉一个序号)

第二次握手:服务器的 TCP 收到连接请求报文段后,如同意连接,就会向客户机发回确认,并为该 TCP 连接分配 TCP 缓存和变量。在确认报文段中,SYN 和 ACK 都置为1,确认号字段为ack = x+1,并且服务器随机产生起始序号seq = y。确认报文段同样不包含应用层数据。

第三次握手:当客户机收到确认报文段后,还要向服务器给出确认,并且也要给该连接分配缓存和变量。这个报文段 ACK 标志位置为1, 序号字段seq = x+1,确认号字段ack=y+1。

SYN:同步位;seq :起始序号;ack:确认号字段

1)SYN = 1, seq = x

2)SYN = 1, ACK = 1, seq = y, ack = x+1

3)ACK = 1, seq = x+1,ack = y+1

TCP的释放(四次挥手)

第一步:客户机打算关闭连接,就向其 TCP 发送一个连接释放的报文段,并停止发送数据,主动关闭 TCP 连接,该报文段的 FIN 标志位置为1, seq = u,它等于前面已传送过的数据的最后一个字节序号加1.

第二步:服务器收到释放连接的报文段后即发出确认,确认号为ack = u+1,而这个报文段自己的序号seq=v,等于它前面传送过的数据最后一个字节的序号加1。此时,客户机到服务器这个方向的连接就释放了,TCP 连接处于半关闭状态,但服务器发送数据,客户机仍然要接受,即从服务器到客户机这个方向的连接并未关闭。

第三步:若服务器已经没有要向客户机发送的数据,就通知 TCP 释放连接,此时其发出 FIN = 1的连接释放报文段。

第四步:客户机收到连接释放的报文段后,必须发出确认。在确认报文段中,ACK=1,确认号ack=w+1,序号seq=u+1,此时TCP连接还没有释放掉,必须经过实践等待计时器设置时间 2MSL(最长报文段寿命 Maximum Segment Lifetime) 后,进入连接关闭状态。

FIN:终止位;seq :起始序号;ack:确认号字段

1)FIN = 1, seq = u

2)ACK = 1, seq = v, ack = u+1

3)FIN = 1, ACK = 1, seq = w,ack = u+1

4)ACK = 1,seq = u+1, ack = w+1

4 TCP和UDP的区别:

TCP(传输控制协议)

(1)建立连接,形成传输数据的通道

(2)在连接中进行大数据传输(数据大小不收限制)

(3)通过三次握手完成连接,是可靠协议,安全送达

(4)必须建立连接,效率会稍低

UDP(用户数据报协议)

(1)将数据及源和目的封装成数据包中,不需要建立连接

(2)每个数据报的大小限制在64K之内

(3)因为无需连接,因此是不可靠协议

(4)不需要建立连接,速度快

5 OSI参考模型

1)物理层:主要定义物理设备标准,如网线的接口类型、各种传输介质的传输速率等。主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是常说的数模与模数转换)。这一层的数据叫做比特(bit),主要设备:集线器

2)数据链路层:主要将从物理层接收的数据进行MAC地址的封装与解封装。常把这一层的数据叫做帧,主要设备:网卡,交换机

3)网络层:选择合适的网间路由和交换结点, 确保数据及时传送,将从下层接收到的数据进行IP地址的封装与解封装。常把这一层数据叫做数据包,主要设备:路由器。

4)传输层:定义了一些传输数据的协议和端口,如TCP、UDP协议,主要将从下层接收的数据进行分段和传输,到达目的地址后再进行重组,以往把这一层数据叫做段。

5)会话层:通过传输层建立数据传输通路。在系统之间发起会话或者接受会话请求(设备之间需要互相认识)

6)表示层:主要是进行对接收的数据进行解释、压缩与解压缩等,即把计算机能够识别的东西转化成人能够识别的东西(如图片、声音等)

7)应用层:主要是一些终端的应用,比如说FTP(各种文件下载)、浏览器、QQ等,可以将其理解为在电脑屏幕上可以看到的东西,也就是终端应用。

6 常见端口号:

端口号

协议

关键词

UNIX关键词

描述

1

TCP

TCPMUX

-TCP

复用器

7

TCP/UDP

ECHO

echo

回送

21

TCP

FTP

ftp

文件传输协议

22

TCP/UDP

SSH安全

Shell

远程登录协议

23

TCP

TELNET

telnet

远程登录

25

TCP

SMTP

smtp

简单邮件传输协议

53

TCP/UDP

DOMAIN

nameserver

域名服务器

67

UDP

BOOTPS

bootps

引导协议服务器

68

UDP

BOOTPC

bootpc

引导协议客户

69

UDP

TFTP

tftp

简单文件传送协议

79

TCP

FINGER

finger

Finger

80

TCP

HTTP

http

超文本传输协议

7 网络中常见的“ping”命令是什么协议?

ping.exe 的原理,向指定的IP地址发送一定长度的数据包,按照约定,若指定IP地址存在的话,会返回同样大小的数据包,当然,若在特定的时间内没有返回,就是“超时”,就认为指定的IP地址不存在。由于ping使用的是ICMP协议(Internet Control Message Protocol)(Internet控制消息协议),有些防火墙软件会屏蔽ICMP协议,所以有时候ping的结果只能作为参考,ping不通过不一定说明对方IP不存在。

TCP的连接(三次握手)和释放(四次挥手)的更多相关文章

  1. TCP建立连接三次握手和释放连接四次握手

    TCP建立连接三次握手和释放连接四次握手     [转载]http://blog.csdn.net/guyuealian/article/details/52535294   在谈及TCP建立连接和释 ...

  2. 【转】TCP建立连接三次握手和释放连接四次握手

    在谈及TCP建立连接和释放连接过程,先来简单认识一下TCP报文段首部格式的的几个名词(这里只是简单说明,具体请查看相关教程) 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数 ...

  3. 【网络】TCP/IP连接三次握手

    TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确 ...

  4. TCP的三次握手过程与四次挥手

    TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确 ...

  5. TCP和IP的三次握手和第四次挥手

    TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确 ...

  6. TCP协议 连接三次握手

    TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标 ...

  7. tcp 建立连接三次握手

    众所周知,tcp是安全的,可靠的,但是为什么呢.要理解这一点,首先先了解tcp的建立连接的原理. 三次握手 第一次握手:由客户端向服务器发送请求,SYN 表示请求连接,seq是序列号(随机选取). 第 ...

  8. http协议tcp协议ip协议三次握手四次挥手,为什么三次握手,为什么四次挥手,sockete套接字理解

    1.1 TCP是什么? TCP是Tranfer Control Protocol的简称,TCP协议是一种面向连接的.可靠的.基于字节流的运输层通信协议.通过TCP协议传输,得到的是一个顺序的无差错的数 ...

  9. tcp ip三次握手链接和四次挥手断开

      先来个整体的流程图       一 三次握手目的是为了建立连接... 1 核心的就是client端和service端,进行数据"报文" 交换 2 报文,目的是互相通知,确认链接 ...

  10. TCP三次握手和断开四次挥手

    TCP三次握手 1主机A发送消息请求与主机B连接 2主机B回复消息同意与主机A连接 3主机A确认主机B的同意连接,并建立连接 TCP的四次挥手 1客户端发送FIN到服务器,请求关闭与服务器的连接(意思 ...

随机推荐

  1. 157. Unique Characters 【LintCode by java】

    Description Implement an algorithm to determine if a string has all unique characters. Example Given ...

  2. Machine Learning笔记整理 ------ (五)决策树、随机森林

    1. 决策树 一般的,一棵决策树包含一个根结点.若干内部结点和若干叶子结点,叶子节点对应决策结果,其他每个结点对应一个属性测试,每个结点包含的样本集合根据属性测试结果被划分到子结点中,而根结点包含样本 ...

  3. 【web前端开发】浏览器兼容性处理大全

    1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果di ...

  4. 如何理解*p++

    后置递增运算符的优先级高于解引用运算符! *p++ 等价于 *(p++) 但是,我们*p++的求值结果不可理解为p+1指向的对象的值,而应该是p指向的对象的值. 这是由于后置++的特性引起的. *p+ ...

  5. Graph Theory

    Description Little Q loves playing with different kinds of graphs very much. One day he thought abou ...

  6. Alpha阶段中间产物

    空天猎功能说明书:https://git.coding.net/liusx0303/Plane.git 空天猎代码控制:https://coding.net/u/MR__Chen/p/SkyHunte ...

  7. TCP系列40—拥塞控制—3、慢启动和拥塞避免概述

    本篇中先介绍一下慢启动和拥塞避免的大概过程,下一篇中将会给出多个linux下reno拥塞控制算法的wireshark示例,并详细解释慢启动和拥塞避免的过程. 一.慢启动(slow start) 一个T ...

  8. PokeCats开发者日志(十二)

      现在是PokeCats游戏开发的第六十一天的晚上,终于拿到软著权登记证书了!   看来易版权确实是个值得信赖的代办机构呢,400块花的不冤.

  9. centOS6.5如何从启动界面直接进入命令行界面

    进入系统后,按Ctrl+Alt+Fn可以切换控制台,其中F1~F6是字符控制台,F7~F12是X控制台 如果启动直接进入字符控制台,而不是X Window,可以编辑/etc/inittab将id:5: ...

  10. 播放MP3

    播放背景音乐 上文来自:http://blog.csdn.net/henulwj/article/details/8977738 using System; using System.Collecti ...