Go Web编程

HTTP简介

2019-08-19  本文已影响0人  77fbb8bc241c

主要内容:

1.1 Web客户端和服务端

Web资源都是存储在Web服务器上的,因为Web服务器使用HTTP通信,以此也成为HTTP服务器。HTTP客户端发出HTTP请求,服务端会根据客户端传输的数据,作出HTTP响应发送请求的数据。如图 1-1 所示,HTTP客户端和HTTP服务端工作原理:


image.png

1.2 URI

每一个Web服务器资源都有一个名字,这样客户端才可以说明它想要的是什么资源。服务器资源名称被称为统一资源标识符(Uniform Resource Identifier, URI)。

<方案名称>:<分层部分>[? <查询参数>] [# <片段>]

统一资源定位符(URL)是资源标识符最常见的形式。如图 1-2 为URL实例:

image.png

1.3 HTTP报文

HTTP是一种请求-响应协议,HTTP报文是由一行一行的简单字符串组成的,都是纯文本,易读。HTTP报文格式:

HTTP报文实例:

GET /index.html HTTP/1.0                       起始行
Accept: text/*                                 首部
Accept-Language: en, fr
HTTP/1.0 200 OK                                  起始行
Content-type: text/plain                         首部
Content-length: 19

Hi, I am index                                   主体

1.4 事务

1.4.1 HTTP请求方法

请求方法是起始行中的第一个单词,指明了客户端要对资源进行的操作。
常见的HTTP方法:

1.4.2 HTTP响应

HTTP响应报文是对HTTP请求报文的回复。跟HTTP请求报文一样,也是一些列的文本组成。
状态码:

一个Telnet实例

GET /index.html HTTP/1.1 

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Connection: Keep-Alive
Content-Length: 14615
Content-Type: text/html
Date: Mon, 19 Aug 2019 08:57:08 GMT
Etag: "5d54da0d-3917"
Last-Modified: Thu, 15 Aug 2019 04:05:33 GMT
P3p: CP=" OTI DSP COR IVA OUR IND COM "
Pragma: no-cache
Server: BWS/1.1
Set-Cookie: BAIDUID=668FD107459E334256837E510A760274:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BIDUPSID=668FD107459E334256837E510A760274; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: PSTM=1566205028; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1

<!DOCTYPE html><!--STATUS OK-->
<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <link rel="dns-prefetch" href="//s1.bdstatic.com"/>
    <link rel="dns-prefetch" href="//t1.baidu.com"/>
    <link rel="dns-prefetch" href="//t2.baidu.com"/>
    <link rel="dns-prefetch" href="//t3.baidu.com"/>
    <link rel="dns-prefetch" href="//t10.baidu.com"/>
    <link rel="dns-prefetch" href="//t11.baidu.com"/>
    <link rel="dns-prefetch" href="//t12.baidu.com"/>
    <link rel="dns-prefetch" href="//b1.bdstatic.com"/>
    <title>百度一下,你就知道</title>
    <link href="http://s1.bdstatic.com/r/www/cache/static/home/css/index.css" rel="stylesheet" type="text/css" />
    <!--[if lte IE 8]><style index="index" >#content{height:480px\9}#m{top:260px\9}</style><![endif]-->
    <!--[if IE 8]><style index="index" >#u1 a.mnav,#u1 a.mnav:visited{font-family:simsun}</style><![endif]-->
    <script>var hashMatch = document.location.href.match(/#+(.*wd=[^&].+)/);if (hashMatch && hashMatch[0] && hashMatch[1]) {document.location.replace("http://"+location.host+"/s?"+hashMatch[1]);}var ns_c = function(){};</script>
    <script>function h(obj){obj.style.behavior='url(#default#homepage)';var a = obj.setHomePage('//www.baidu.com/');}</script>
    <noscript><meta http-equiv="refresh" content="0; url=/baidu.html?from=noscript"/></noscript>
    <script>window._ASYNC_START=new Date().getTime();</script>
</head>

参考文献:

上一篇下一篇

猜你喜欢

热点阅读