TCP/IP笔记 应用层(3)——HTTP

1. URL


URL(Uniform Resource Locator) 相当于一个文件名在网络范围的扩展。

1.1 格式


schema://host[:port#]/path/.../[?query-string][#anchor]

scheme           
指定低层使用的协议(例如:http, https, ftp)

host                  
HTTP服务器的IP地址或者域名(存放资源的地方)

port#                
HTTP服务器的默认端口是80,这种情况下端口号可以省略。

path                  
访问资源的路径

query-string       发送给http服务器的数据

anchor-            

2. HTTP

HTTP (HyperText Transfer Protocol),超文本传送协议 。HTTP 是一个应用层协议,它使用 TCP
连接进行可靠的传送。

2.1 工作过程

(1) 浏览器分析超链指向页面的 URL。
(2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP
地址。
(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。
(4) 浏览器与服务器建立 TCP 连接
(5)
浏览器发出取文件命令:
      GET /chn/yxsz/index.htm。
(6)
服务器 给出响应,把文件 index.htm 发给浏览器。
(7) TCP 连接释放。
(8) 浏览器显示“清华大学院系设置”文件
index.htm 中的所有文本。

注:打开一个网页一般需要多次Request:

(1)首先浏览器获取到index.html页面,然后浏览器就会对index.html进行解析

(2)解析后发现其中还有很多信息,比如图片、css、js等其他引用信息,然后浏览器就会自动对这些信息发出Request请求

(3)当所有的数据都获取完毕后,浏览器就会把网页显示出来。(一般来说,当页面的大体框架获取完成后就会把页面显示出来)

2.2 特点


(1)面向事务的客户服务器协议。
(2)HTTP 1.0 协议是无状态的(stateless)。

同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。 为了解决这个问题,
Web程序引入了Cookie机制来维护状态.
(3)HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP
向上提供的服务。
(4)万维网浏览器就是一个 HTTP 客户,而在万维网服务器等待 HTTP 请求的进程常称为 HTTP daemon,有的文献将它缩写为
HTTPD。
(5)HTTP daemon 在收到 HTTP 客户的请求后,把所需的文件返回给 HTTP 客户。

2.3 HTTP消息格式

HTTP有2种消息:

Request(请求报文)——从客户向服务器发送请求报文。
Response(响应报文)——从服务器到客户的回答。

2.3.1 Request

先看Request 消息的结构,   Request 消息分为3部分,第一部分叫Request line, 第二部分叫Request
header, 第三部分是body. header和body之间有个空行, 结构如下图

第一行中的方法(Method)表示请求方法,比如"POST","GET",  URL表示请求的资源, Http/version-number
表示HTTP协议的版本号

当使用的是"GET" 方法的时候, body是为空的。

方法:

Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE.
一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。
我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.

GET和POST的区别:

(1)GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. 
POST方法是把提交的数据放在HTTP包的Body中.

(2)GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.

(3)GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。

(4)GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

2.3.2 Response

状态码:

1xx 表示通知信息的,如请求收到了或正在进行处理。
2xx 表示成功,如接受或知道了。
3xx
表示重定向,表示要完成请求还必须采取进一步的行动。
4xx 表示客户的差错,如请求中有错误的语法或不能完成。
5xx
表示服务器的差错,如服务器失效无法完成请求。

状态码更加详细的信息请参见:

http://blog.csdn.net/matrix_laboratory/article/details/8649559

http://blog.csdn.net/matrix_laboratory/article/details/11764239

时间: 2024-11-16 16:50:15

TCP/IP笔记 应用层(3)——HTTP的相关文章

TCP/IP笔记 应用层(1)——DNS

1. DNS DNS(Domain Name System ):域名系统,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串. DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP. 2. 域名结构 通常 Internet 主机域名的一般结构为: 主机名.三级域名.二级域名.顶级域名 2.1 顶级域名 TLD (Top Level Domain) (1) 国家顶级域名 nT

TCP/IP笔记 应用层(2)——FTP

1. FTP(File Transfer Protocol) 文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务.FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性.1.1 网络环境下复制文件的复杂性:(1) 计算机存储数据的格式不同.(2) 文件的目录结构和文件命名的规定不同.(3) 对于相同的文件存取功能,操作系统使用的命令不同.(4) 访问控制方法不同.FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME

TCP/IP 7 应用层协议

第8章 应用层协议 8.1 TCP/IP应用层协议主要是指OSI参考模型中的第5层.第6层.第7层上半部分的协议.(会话层,表示层,应用层) 应用层协议定义: 利用网络的应用程序有很多,包括web浏览器.电子邮件.远程登陆.文件传输.网络管理等.能够让这些应用进行特定通信处理的正是应用协议. TCP和IP等下层协议是不依赖于上层应用类型.适用性非常广的协议.而应用协议则是为了实现某种应用而设计和创造的协议. 应用协议与协议的分层: 应用可以直接享用传输层以下的基础部分.因为开发者只要关心选用哪种

TCP/IP 笔记 1.2 链 路 层

都是包含三种类型.根据类型字段的值来进行区分 2.4 SLIP:串行线路IPS L I P的全称是Serial Line IP.它是一种在串行线路上对 I P数据报进行封装的简单形式,在RFC 1055[Romkey 1988]中有详细描述. S L I P适用于家庭中每台计算机几乎都有的 R S - 2 3 2串行端口和高速调制解调器接入 I n t e r n e t.下面的规则描述了 S L I P协议定义的帧格式:1) IP 数据报以一个称作 E N D(0 x c 0)的特殊字符结束.

TCP/IP 笔记 7 Ping

[email protected]:~$ ping www.baidu.com PING www.a.shifen.com (123.125.65.82) 56(84) bytes of data. 这句出现前的延时,为DNS对域名的解析时间 64 bytes from 123.125.65.82: icmp_seq=1 ttl=50 time=2.60 ms 这句time如果较长,可能是发送ARP请求和接受ARP应答所花的时间 64 bytes from 123.125.65.82: icmp

TCP/IP 笔记 1.3 IP:网际协议

---恢复内容开始--- I P是T C P / I P协议族中最为核心的协议.所有的 T C P.U D P.I C M P及I G M P数据都以I P数据报格式传输. 不可靠( u n r e l i a b l e)的意思是它不能保证 I P数据报能成功地到达目的地. I P仅提供最好的传输服务.如果发生某种错误时,如某个路由器暂时用完了缓冲区, I P有一个简单的错误处理算法:丢弃该数据报,然后发送 I C M P消息报给信源端.任何要求的可靠性必须由上层来提供(如T C P). 无连

Linux程序设计学习笔记----Socket网络编程基础之TCP/IP协议簇

转载请注明出处: ,谢谢! 内容提要 本节主要学习网络通信基础,主要涉及的内容是: TCP/IP协议簇基础:两个模型 IPv4协议基础:IP地址分类与表示,子网掩码等 IP地址转换:点分十进制\二进制 TCP/IP协议簇基础 OSI模型 我们知道计算机网络之中,有各种各样的设备,那么如何实现这些设备的通信呢? 显然是通过标准的通讯协议,但是,整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等,如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只

TCP/IP学习笔记(1)----------详解

TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成.TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准.协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求.通俗而言:TCP负责发现传输的问题,一有问题就发出信号,

2.1.5 计算机网络协议: TCP/IP

应用程序阶段:妳打开浏览器,在浏览器上面输入网址列,按下 [Enter].此时网址列与相关数据会被浏览器包成一个数据, 并向下传给 TCP/IP 的应用层: 应用层:由应用层提供的 HTTP 通讯协议,将来自浏览器的数据报起来,并给予一个应用层表头,再向传送层丢去: 传送层:由于 HTTP 为可靠联机,因此将该数据丢入 TCP 封包内,并给予一个 TCP 封包的表头,向网络层丢去: 网络层:将 TCP 包裹包进 IP 封包内,再给予一个 IP 表头 (主要就是来源与目标的 IP 啰),向链结层丢