Linux下的网络编程——B/S模型HTTP(四)

前言:

HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、Internet Explorer、Google Chrome、Safari、Opera等,此外,客户端的命令行工具还有elink、curl等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP进行通信了。 

目录

HTTP协议基础:

 1.请求消息:

2.响应消息

3.请求方法:

(1)GET

(2)POST

4.状态码:

4.GET与POST的区别:

5.默认端口号:


HTTP协议基础:


        HTTP,超文本传输协议( HyperText Transfer Protocol )。互联网应用最为广泛的一种网络应用层协议。它可以减少网络传输,使浏览器更加高效。
        通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。

 1.请求消息:

请求消息:请求行        请求头    空行         请求体


浏览器—>发给—>服务器。主旨内容包含4部分: 

请求行:说明请求类型,要访问的资源,以及使用的http版本

请求头:说明服务器要使用的附加信息,

空行:必须!,即使没有请求数据·

请求数据:也叫主体,可以添加任意的R他数据。

1. GET /hello.c Http1.1\r\n
2. Host: localhost:2222\r\n
3. User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/201001    01 Firefox/24.0\r\n
4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
5. Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3\r\n
6. Accept-Encoding: gzip, deflate\r\n
7. Connection: keep-alive\r\n
8. If-Modified-Since: Fri, 18 Jul 2014 08:36:36 GMT\r\n
【空行】\r\n

2.响应消息

        响应消息:状态行        消息报头        空行         响应正文

服务器—>发给―>浏览器。主旨内容包含4部分:


状态行:包括http协议版本号,状态码,状态信息

消息报头:说明客户端要使用的一些附加信息

空行:必须

响应正文:服务器返回给客户端的文本信息

3.请求方法:

(1)GET

        请求指定的页面信息,并返回实体主体。

(2)POST

        向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。

1. Http1.1 200 OK
2. Server: xhttpd
Content-Type:text/plain; charset=iso-8859-1 
3. Date: Fri, 18 Jul 2014 14:34:26 GMT
5. Content-Length: 32  ( 要么不写 或者 传-1, 要写务必精确 ! )
6. Content-Language: zh-CN
7. Last-Modified: Fri, 18 Jul 2014 08:36:36 GMT
8. Connection: close 
\r\n
[数据起始。。。。。
。。。。
。。。数据终止]

4.状态码:

        200:正确返回

        401:用户权限不足

        404:请求的资源不存在

        500:服务端出错

        300系列:重定向

4.GET与POST的区别:

在本质上两者都是通过tcp进行通信传输的顶层协议,但是

GET请求参数在请求行中,在url后,POST请求参数在请求体中

GET请求的url长度有限制,POST没有

5.默认端口号:

http默认端口号:80,https默认端口号443,ftp默认端口号21

你可能感兴趣的:(linux,网络,http,GET,POST)